接收对象无法转换DBNULL错误

时间:2014-02-27 19:01:13

标签: c# sql sql-server stored-procedures dbnull

在C#Windows窗体上单击按钮,我有一个SQL Server存储过程,用于根据Customers First Name和Last Name参数返回Customer ID。如果客户不存在,我收到此错误

  

无法将对象从DBNull强制转换为其他类型。

如何显示显示Customer Not Found的消息,而不是显示此错误。

调用存储过程并将返回值存储为memberID的代码:

SqlCommand IDFromName = new SqlCommand("MemberIDfromName", sc);
IDFromName.Parameters.Add("@memberID", SqlDbType.Int).Direction = ParameterDirection.Output;
IDFromName.Parameters.Add("@firstName", SqlDbType.NVarChar).Value = txtFirst.Text;
IDFromName.Parameters.Add("@secondName", SqlDbType.NVarChar).Value = txtLast.Text;
IDFromName.CommandType = CommandType.StoredProcedure;

sc.Open();
IDFromName.ExecuteNonQuery();
sc.Close();

memberID = Convert.ToInt32(IDFromName.Parameters["@memberID"].Value);  

1 个答案:

答案 0 :(得分:0)

试试这个:

if (!DBNull.Value.Equals(IDFromName.Parameters["@memberID"].Value) 
{
//success Customer Found Do something
 -------------------------------------
}
else
{
MessageBox.Show("Customer Not Found!");
}