提前感谢您的帮助。非常感谢。
由于我得到“程序或函数指定的参数太多”,经过两个长时间的搜索 Stack Overflow 和其他 Google 结果,我没有找到任何有用的帮助。这样做的原因是,在任何地方,我都读到我可能指定了太多参数,我的参数名称不正确,或者类型不正确。这些都不适合我的情况。这是我的代码:
CREATE PROCEDURE dbo.sproc_UpdateInfo
(
@Name nvarchar(40),
@UserId varchar(50),
@Password varchar(50),
@Address nvarchar(120)
)
AS
Update tbl_Users SET Name=@Name, Password=@Password, Address=@Address WHERE UserId=@UserId
RETURN
这是 C# 的一面:
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.CommandText = "sproc_UpdateInfo";
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Parameters.Add("@Name", SqlDbType.NVarChar, 40).Value = name;
sqlCmd.Parameters.Add("@UserId", SqlDbType.VarChar, 50).Value = userID;
sqlCmd.Parameters.Add("@Password", SqlDbType.VarChar, 50).Value = password;
sqlCmd.Parameters.Add("@Address", SqlDbType.NVarChar, 120).Value = address;
SqlConnection sqlConn = new SqlConnection(connectionString);
sqlCmd.Connection = sqlConn;
try
{
sqlCmd.Connection.Open();
int rowaffected = sqlCmd.ExecuteNonQuery(); //Error occurs here
return rowaffected;
}
catch (SqlException se)
{
throw new Exception("SqlException: sqlstr=" + sqlCmd.CommandText, se);
}
finally
{
sqlCmd.Dispose();
sqlConn.Close();
}