SqlParameterCollection 仅接受非空的 SqlParameter 类型对象,不接受 String 对象。

来源:百度知道 编辑:UC知道 时间:2024/09/21 06:35:16
SqlConnection con = DB.createCon();
//con.Open();
SqlCommand cmd = new SqlCommand("insert into Users values(@UserId,@UserPwd,@UserSex,@UserBirth,@UserAddress,@UserEmail)", con);

cmd.Parameters.Add("@UserPwd,SqlDbType.VarChar,50");
cmd.Parameters.Add ("@UserSex,SqlDbType.VarChar,2");
cmd.Parameters.Add("@UserBirth,SqlDbType.DateTime,8");
cmd.Parameters.Add("@UserAddress,SqlDbType.VarChar,50");
cmd.Parameters.Add("@UserEmail,SqlDbType.VarChar,50");

cmd.Parameters["UserId"].Value = Session ["UserId"].ToString ();
cmd.Parameters["UserPwd"].Value = this.TextPwd.Text;
cmd.Parameters["UserSex"].Value = this.radioboyorgirl.SelectedItem.Text;
cmd.Parameters["UserBirth"].Value = Convert.ToDat

少定义了一个 UserId
就按你前面那样写就行了,加上去
cmd.Parameters.Add("@UserId ",SqlDbType.VarChar,50);

还有一个错误是:
引号的问题:
cmd.Parameters.Add("@UserEmail,SqlDbType.VarChar,50");
应是:
cmd.Parameters.Add("@UserEmail",SqlDbType.VarChar,50);

最后你的数据库是不是就是这几个字段呢?
如果不完全符合,应该写成
UserId=@UserId ,----

我自己有一个,你可以参考一下:

string sql1 = "insert into TA1(xm,lv) values(@xm,@lv)" ;
System.Data.SqlClient.SqlParameter[] sqlparam = new System.Data.SqlClient.SqlParameter[2];

sqlparam[0] = new System.Data.SqlClient.SqlParameter("@xm",System.Data.SqlDbType.VarChar,50);
sqlparam[0].Value = "qimin1029";
sqlparam[1] = new System.Data.SqlClient.SqlParameter("@lv",System.Data.SqlDbType.Decimal);
sqlparam[1].Value = "0.25";
int dd = 0;
string erradssdf = this.ExecSql_EffectRowCount(sql1,sqlparam,System.D