这样写有什么错/
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText ="insert into Worker(WorkerID,DeptID,WorkerName,IDCard,RoleID,Pwd,tele,operate) "+
" values (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8)"; cmd.Parameters.Add("@p1",SqlDbType.Char,5,"WorkerID").Value = worker.WorkerID;
cmd.Parameters.Add("@p2",SqlDbType.Char,2,"DeptID").Value = worker.DeptID;
cmd.Parameters.Add("@p3",SqlDbType.Char,20,"workerName").Value = worker.WorkerName;
cmd.Parameters.Add("@p4",SqlDbType.VarChar,15,"IDCard").Value =worker.IDCard;
cmd.Parameters.Add("@p5",SqlDbType.VarChar,50,"RoleID").Value =worker.RoleID;
cmd.Parameters.Add("@p6",SqlDbType.VarChar,50,"Pwd").Value =worker.Pwd;
cmd.Parameters.Add("@p7",SqlDbType.VarChar,15,"Tel").Value =worker.Tele;
cmd.Parameters.Add("@p8",SqlDbType.VarChar,5,"operate").Value =worker.Operate ; conn.open();
cmd.ExecuteNonQuery();
老提示 "被准备语句 '(@p1 char(5),@p2 char(2),@p3 char(20),@p4 varchar(15),@p5 varcha' 需要参数 @p3,但未提供该参数。\r\n未能准备语句。"
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText ="insert into Worker(WorkerID,DeptID,WorkerName,IDCard,RoleID,Pwd,tele,operate) "+
" values (@p1,@p2,@p3,@p4,@p5,@p6,@p7,@p8)"; cmd.Parameters.Add("@p1",SqlDbType.Char,5,"WorkerID").Value = worker.WorkerID;
cmd.Parameters.Add("@p2",SqlDbType.Char,2,"DeptID").Value = worker.DeptID;
cmd.Parameters.Add("@p3",SqlDbType.Char,20,"workerName").Value = worker.WorkerName;
cmd.Parameters.Add("@p4",SqlDbType.VarChar,15,"IDCard").Value =worker.IDCard;
cmd.Parameters.Add("@p5",SqlDbType.VarChar,50,"RoleID").Value =worker.RoleID;
cmd.Parameters.Add("@p6",SqlDbType.VarChar,50,"Pwd").Value =worker.Pwd;
cmd.Parameters.Add("@p7",SqlDbType.VarChar,15,"Tel").Value =worker.Tele;
cmd.Parameters.Add("@p8",SqlDbType.VarChar,5,"operate").Value =worker.Operate ; conn.open();
cmd.ExecuteNonQuery();
老提示 "被准备语句 '(@p1 char(5),@p2 char(2),@p3 char(20),@p4 varchar(15),@p5 varcha' 需要参数 @p3,但未提供该参数。\r\n未能准备语句。"
insert into Worker(WorkerID,DeptID) values (@p1,@p2)";
这样没问题
是不是因为worker.WorkerName的值为null,导致insert语句
insert into worker(WorkerID,DeptID,WorkerName) values(001,001,)
解决办法是如果是字符类型,需要加''才行,如
insert into worker(WorkerID,DeptID,WorkerName) values('001','001','')
worker.WorkerID,
worker.DeptID,
worker.WorkerName,
worker.IDCard,
worker.RoleID,
worker.Pwd,
worker.Tele,
worker.Operate);conn.open();
cmd.ExecuteNonQuery();
if (pars != null)
{
foreach (SqlParameter p in pars)
{ if (p.Value == null)
{
p.Value = DBNull.Value;
}
}
}