我正在尝试基于id插入数据,并且已在参数中添加了id,但错误仍然显示未提供id。
public static int ExecuteNonQuery(string sql, CommandType type, params SqlParameter[] param)
{
using (SqlConnection conn = new SqlConnection(GetConnectionString))
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = CommandType.StoredProcedure;
PrepareCommand(sql, conn, cmd, type, param);
return cmd.ExecuteNonQuery(); // Error here (unhandled exception)
}
}
插入数据功能
public int AddUsers(Users user)
{
int rel = 0;
string sql = "INSERT INTO Student
VALUES (@id, @groupId, @userInfo, @imagePath)";
SqlParameter[] param = {
new SqlParameter("@id", user.uid),
new SqlParameter("@groupId", user.groupId),
new SqlParameter("@userInfo",user.userInfo),
new SqlParameter("@imagePath",user.imagePath),
};
rel = SqlHelper.ExecuteNonQuery(sql, CommandType.Text, param);
return rel;
}
如果id不为空,例如示例,我将调用该方法。
if(id != 0)
{
int rel = AddUsers(user);
}
答案 0 :(得分:2)
您正在检查id != 0
,但是将user.uid
用作@id
的参数。 user.uid
是什么类型?并且确保它是!= null
,因为如果您将null
添加为参数值,则将其视为未提供。如果需要将NULL插入数据库,请使用DbNull.Value