在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);
答案 0 :(得分:0)
试试这个:
if (!DBNull.Value.Equals(IDFromName.Parameters["@memberID"].Value)
{
//success Customer Found Do something
-------------------------------------
}
else
{
MessageBox.Show("Customer Not Found!");
}