如何处理dbnull错误 [英] How to handle dbnull errors

查看:79
本文介绍了如何处理dbnull错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆