使用c#调用带有参数的SQL Server存储过程

本文关键字:SQL Server 存储过程 参数 调用 使用 | 更新日期: 2023-09-27 18:05:21

我正在尝试使用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();

我不明白当我传递参数值时,为什么它会抱怨值没有被传递?我错过什么了吗?

使用c#调用带有参数的SQL Server存储过程

嗯,看起来您没有告诉命令对象它是一个存储过程而不是一个常规查询试试这个

    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()