执行标量 return 空
ExecuteScalar return null
我在下面使用 SQL 服务器功能来检查用户通过 C# 输入的 userName
和 password
windows 表格是否正确,如下所示,但是起初我在第 cmd.ExecuteScalar();
行遇到错误说
{"Object reference not set to an instance of an object."}
在尝试处理该错误后,我在
上收到错误
return result.ToString();
如果 SQL 服务器函数没有 return 空值,我如何获得空值 return 如果数据库中没有匹配项,则为 1 或 -1?
即便如此,我还是搜索并尝试处理 cmd.ExecuteScalar();
中的空值 return,如您所见,我的尝试成功了 none
如果有人可以帮助我...谢谢
您可能想做这样的事情:
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();
}
}
cmd.ExecuteScalar()
将 return 结果集中第一行的第一列。
您的 SQL 服务器功能代码以 RETURN @vResult
结尾,这是 RETURN
值。
尝试将 RETURN @vResult
替换为 SELECT @vResult
。
我在下面使用 SQL 服务器功能来检查用户通过 C# 输入的 userName
和 password
windows 表格是否正确,如下所示,但是起初我在第 cmd.ExecuteScalar();
行遇到错误说
{"Object reference not set to an instance of an object."}
在尝试处理该错误后,我在
上收到错误return result.ToString();
如果 SQL 服务器函数没有 return 空值,我如何获得空值 return 如果数据库中没有匹配项,则为 1 或 -1?
即便如此,我还是搜索并尝试处理 cmd.ExecuteScalar();
中的空值 return,如您所见,我的尝试成功了 none
如果有人可以帮助我...谢谢
您可能想做这样的事情:
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();
}
}
cmd.ExecuteScalar()
将 return 结果集中第一行的第一列。
您的 SQL 服务器功能代码以 RETURN @vResult
结尾,这是 RETURN
值。
尝试将 RETURN @vResult
替换为 SELECT @vResult
。