如何处理dbnull错误 [英] How to handle dbnull errors
问题描述
Hello Everyone,
考虑到下面的内容,当出现错误(例如DBNULL错误)并且你点击没问题时,其他事件(例如a按钮单击)变得没有响应,有没有办法我可以处理此错误消息,因此它不会影响其他事件。谢谢。
我尝试了什么:
尝试
{
string selectcom7 = @select sum(inv)as grayear from grawu
其中StaffNumber = @ staffid和DATEPART(年,日期)< @year;
SqlCommand comm7 = new SqlCommand(selectcom7,connection);
comm7.Parameters.AddWithValue(@ staffid,txtstaffid.Text);
comm7.Parameters.AddWithValue(@ year,cmbyear.Text);
connection.Open();
SqlDataReader dr7 = comm7.ExecuteReader();
//字符串值;
if(dr7.Read())
{
if(dr7 [prevyear] == null)
{
previnvestment = Convert.ToDecimal(0.00);
}
else
{previnvestment = Convert.ToDecimal(dr7 [prevyear]); }
// previous = Convert.ToString(dr7 [prevyears]);
}
else
{
MessageBox.Show(No Previous data found);
}
}
catch(exception ex)
{
MessageBox.Show(From Previous Balance:+ ex.Message );
}
最后
{
connection.Close();
}
有一个特定的DBNull来处理数据库中的空值,因为null是一个.net null并且有不同的含义。
if(dr7 [prevyear] == DBNull.Value)
Quote:if(dr7 [prevyear] == null)
{
previnvestment = Convert.ToDecimal(0.00);
}
else
{ previnvestment = Convert.ToDecimal(dr7 [prevyear]); }
以上代码集应替换为
double.TryParse((dr7 [prevyear] + ),预先投资);
参考 Double.TryParse方法 [ ^ ]
如果你想检查null / DBNull值你应该使用这个<如果(dr7 [prevyear]!= null&& dr7 [prevyear]!= DBNull.Value)
{
}
Hello Everyone,
considering the below, when an error(such as the DBNULL error) gets popped up and you clicked okay,other events(such as a button click) becomes unresponsive, is there a way I can handle this error message so it doesn't affect other events. Thank you.
What I have tried:
try { string selectcom7 = @"select sum(inv) as prevyear from grawu where StaffNumber=@staffid and DATEPART(year,Date)<@year"; SqlCommand comm7 = new SqlCommand(selectcom7, connection); comm7.Parameters.AddWithValue("@staffid", txtstaffid.Text); comm7.Parameters.AddWithValue("@year", cmbyear.Text); connection.Open(); SqlDataReader dr7 = comm7.ExecuteReader(); //string value; if (dr7.Read()) { if (dr7["prevyear"] == null) { previnvestment = Convert.ToDecimal(0.00); } else { previnvestment = Convert.ToDecimal(dr7["prevyear"]); } //previous = Convert.ToString( dr7["prevyears"]); } else { MessageBox.Show("No Previous data found"); } } catch (Exception ex) { MessageBox.Show("From Previous Balance :" + ex.Message); } finally { connection.Close(); }
There is a specific DBNull to handle nulls from the database as "null" is a .net null and has a different meaning.
if (dr7["prevyear"] == DBNull.Value)
Quote:if (dr7["prevyear"] == null)
{
previnvestment = Convert.ToDecimal(0.00);
}
else
{ previnvestment = Convert.ToDecimal(dr7["prevyear"]); }
The above set of codes shall be replaced by
double.TryParse((dr7["prevyear"]+""),out previnvestment);
refer Double.TryParse Method [^]
if you want to check null/DBNull values you shall use this
if (dr7["prevyear"] != null && dr7["prevyear"]!= DBNull.Value) { }
这篇关于如何处理dbnull错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!