我正在使用下面的SQL Server函数来检查用户通过C#Windows窗体输入的userName
和password
是否正确,如下所示,但是起初我在第{{ 1}}
{“对象引用未设置为对象的实例。”}
尝试处理该错误后,我得到
上的错误cmd.ExecuteScalar();
如果SQL Server函数未返回空值,我如何获取空值,如果数据库中没有匹配项,则返回1或-1?
即使如此,我仍然搜索并尝试处理return result.ToString();
返回的空值,因为您可以看到我的尝试,但没有成功
请有人帮助我...谢谢
答案 0 :(得分:2)
您可能想要执行以下操作:
public string userLogin()
{
string connStr = ConfigurationManager.ConnectionStrings["SRJDconnstr"].ToString();
string cmdStr = @"SELECT dbo.USER_LOGIN(@USER_NAME, @PWD)";
using (SqlConnection conn = new SqlConnection(connStr))
using (SqlCommand cmd = new SqlCommand(cmdStr, conn))
{
conn.Open();
cmd.Parameters.AddWithValue("@USER_NAME", TB_USER_NAME.Text);
cmd.Parameters.AddWithValue("@PWD", TB_PWD.Text);
var result = cmd.ExecuteScalar();
return result.ToString();
}
}
答案 1 :(得分:0)
cmd.ExecuteScalar()
将返回结果集中第一行的第一列。
您的SQL Server功能代码以RETURN @vResult
结尾,即RETURN
值。
尝试将RETURN @vResult
替换为SELECT @vResult
。