C# 接收对象不能强制转换为DBNULL错误
在C#Windows窗体按钮上单击,我有一个SQL Server存储过程,用于根据客户的名字和姓氏参数返回客户ID。如果客户不存在,我将收到此错误 对象不能从DBNull强制转换为其他类型 我如何显示一条消息,显示客户未找到,而不是收到此错误 调用存储过程并将返回值存储为C# 接收对象不能强制转换为DBNULL错误,c#,sql,sql-server,stored-procedures,dbnull,C#,Sql,Sql Server,Stored Procedures,Dbnull,在C#Windows窗体按钮上单击,我有一个SQL Server存储过程,用于根据客户的名字和姓氏参数返回客户ID。如果客户不存在,我将收到此错误 对象不能从DBNull强制转换为其他类型 我如何显示一条消息,显示客户未找到,而不是收到此错误 调用存储过程并将返回值存储为memberID的代码: SqlCommand IDFromName = new SqlCommand("MemberIDfromName", sc); IDFromName.Parameters.Add("@memberID"
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);
试试这个:
if (!DBNull.Value.Equals(IDFromName.Parameters["@memberID"].Value)
{
//success Customer Found Do something
-------------------------------------
}
else
{
MessageBox.Show("Customer Not Found!");
}
相关代码会很有帮助在您尝试强制转换如何显示消息之前检查值
是否为DBNull
?使用MessageBox这可能有你想要的答案->发布了一些代码,希望有用