不知道为什么我不能回复这里只有少量评论文字的人,但是我的修改后的代码超过了这个,所以我发布了新的。
此Web服务始终返回0.如果我在SSMS中运行它返回3 ...不确定原因,有什么想法吗?
string ConnString = "Removed";
String query = "DECLARE @userSID varchar(255) SELECT COUNT(AD_SID) As ReturnCount FROM AD_Authorization WHERE AD_SID = @userSID ";
using (OleDbConnection conn = new OleDbConnection(ConnString))
{
using (OleDbCommand cmd = new OleDbCommand(query, conn))
{
cmd.Parameters.AddWithValue("userSID", SpartaCrypto.SpartaEncryptAES(userSID.ToString(), "s3cret!"));
conn.Open();
int returnCount = (Int32)cmd.ExecuteScalar();
conn.Close();
if (returnCount > 1)
{
return 1;
}
else
{
return 0;
}
}
}
答案 0 :(得分:3)
您的查询不是一个好的OLEDB参数化查询。
请改为尝试:
"SELECT COUNT(AD_SID) As ReturnCount FROM AD_Authorization WHERE AD_SID = @userSID";
此外,参数名称应匹配:
cmd.Parameters.AddWithValue("@userSID", SpartaCrypto.SpartaEncryptAES(userSID.ToString(), "s3cret!"));