我试图使用C#代码调用一个非常简单的SQL Server存储过程。我有一个具有authenticate
方法的类。我将文本框值(userID,密码)传递给此方法,并继续向我抛出有关未传递的必需参数的错误。我基本上是一名从事C#项目的商业智能专业人员。将不胜感激。
这是我正在执行的代码:
sqcon.Open();
SqlCommand cmd = new SqlCommand("Users.PR_Authenticate_WebUsers",sqcon);
cmd.Parameters.Add("@In_UserID", SqlDbType.VarChar).Value = "f";
cmd.Parameters.Add("@In_PassWord", SqlDbType.NVarChar).Value = "f";
cmd.Parameters.Add("@Out_IsAuthenticatedUser", SqlDbType.Bit);
cmd.Parameters["@Out_IsAuthenticatedUser"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
sqcon.Close();
我不明白何时我明确地传递参数值为什么它会抱怨值没有被传递?我错过了什么吗?
答案 0 :(得分:4)
嗯,好像你没有告诉命令对象它是一个存储过程而不是常规查询尝试这个
sqcon.Open();
SqlCommand cmd = new SqlCommand("Users.PR_Authenticate_WebUsers",sqcon);
cmd.CommandType = CommandType.StoredProcedure;
//Add parameters like this
cmd.Parameters.Add(new SqlParameter("@In_UserID", "f"));
sqcon.Close()