问题描述
stringsql="updateOA_ZX_Ysetzx_y_no=@txtno,zx_y_name=@txtname,zx_y_bumen=@txtbumen,zx_y_kebie=@txtkebie,zx_y_zubie=@txtzubie,zx_y_ip=@ip,zx_y_cad=@cad,zx_y_usb=@usb,zx_y_online=@online,zx_y_ps=@ps,SolidWorks=@sw,Poe=@pewherezx_y_no=@txtno";SqlCommandcomm=newSqlCommand(sql,con);comm.CommandType=CommandType.StoredProcedure;comm.Parameters.Add("@txtno",SqlDbType.VarChar,50).Value=txt_No.Text;comm.Parameters.Add("@txtname",SqlDbType.VarChar,50).Value=txt_Name.Text;comm.Parameters.Add("@txtbumen",SqlDbType.VarChar,50).Value=txt_Bumen.Text;comm.Parameters.Add("@txtkebie",SqlDbType.VarChar,50).Value=txt_Kebie.Text;comm.Parameters.Add("@txtzubie",SqlDbType.VarChar,50).Value=txt_Zubie.Text;comm.Parameters.Add("@ip",SqlDbType.VarChar,50).Value=txt_IP.Text;comm.Parameters.Add("@cad",SqlDbType.VarChar,50).Value=ckb_CAD.Checked;comm.Parameters.Add("@usb",SqlDbType.VarChar,50).Value=ckb_USB.Checked;comm.Parameters.Add("@online",SqlDbType.VarChar,50).Value=ckb_online.Checked;comm.Parameters.Add("@ps",SqlDbType.VarChar,50).Value=ckb_PS.Checked;comm.Parameters.Add("@sw",SqlDbType.VarChar,50).Value=ckb_sw.Checked;comm.Parameters.Add("@pe",SqlDbType.VarChar,50).Value=ckb_poe.Checked;if(comm.ExecuteNonQuery()>0){lblbaocuo1.Text="";ckb_CAD.Checked=false;ckb_online.Checked=false;ckb_PS.Checked=false;ckb_USB.Checked=false;ckb_sw.Checked=false;ckb_poe.Checked=false;txt_Bumen.Text=txt_IP.Text=txt_Kebie.Text=txt_Name.Text=txt_No.Text=txt_Zubie.Text="";con.Close();this.ClientScript.RegisterStartupScript(this.GetType(),"message","<script>alert('修改成功!')</script>",true);}
解决方案
解决方案二:
报错了么?大致一看con.Open()看不到
解决方案三:
con.Open()在sql上面,沒有複製上來,不是打開的問題
解决方案四:
去掉comm.CommandType=CommandType.StoredProcedure;
解决方案五:
comm.Parameters.Add("@pe",SqlDbType.VarChar,50).Value=ckb_poe.Checked;..这些...左边应该是要求string类型的值吧右边写bool明显编译不可能通过啊==..
解决方案六:
1)comm.CommandType=CommandType.Text;2)ckb_CAD.Checked是bool值,和前面string的不匹配comm.Parameters.Add("@cad",SqlDbType.VarChar,50).Value=ckb_CAD.Checked;comm.Parameters.Add("@usb",SqlDbType.VarChar,50).Value=ckb_USB.Checked;comm.Parameters.Add("@online",SqlDbType.VarChar,50).Value=ckb_online.Checked;comm.Parameters.Add("@ps",SqlDbType.VarChar,50).Value=ckb_PS.Checked;comm.Parameters.Add("@sw",SqlDbType.VarChar,50).Value=ckb_sw.Checked;comm.Parameters.Add("@pe",SqlDbType.VarChar,50).Value=ckb_poe.Checked;
解决方案七:
怎麼轉換?.tostring()不行
解决方案八:
...你数据库的设计有问题..
解决方案九:
引用6楼bbs_aspnet的回复:
怎麼轉換?.tostring()不行
如果ckb_CAD是checkbox,又是调用它本身的Text值的话,这么写comm.Parameters.Add("@cad",SqlDbType.VarChar,50).Value=ckb_CAD.Text;
解决方案十:
报错贴上来!!!
解决方案十一:
con.Open();stringsql="updateOA_ZX_Ysetzx_y_no=@txtno,zx_y_name=@txtname,zx_y_bumen=@txtbumen,zx_y_kebie=@txtkebie,zx_y_zubie=@txtzubie,zx_y_ip=@ip,zx_y_cad=@cad,zx_y_usb=@usb,zx_y_online=@online,zx_y_ps=@ps,SolidWorks=@sw,Poe=@pewherezx_y_no=@txtno";SqlCommandcomm=newSqlCommand(sql,con);comm.CommandType=CommandType.StoredProcedure;List<SqlParameter>list=newList<SqlParameter>();list.Add(newSqlParameter("@txtno",txt_No.Text));list.Add(newSqlParameter("@txtname",txt_Name.Text));list.Add(newSqlParameter("@txtbumen",txt_Bumen.Text));list.Add(newSqlParameter("@txtkebie",txt_Kebie.Text));list.Add(newSqlParameter("@txtzubie",txt_Zubie.Text));list.Add(newSqlParameter("@ip",txt_IP.Text));list.Add(newSqlParameter("@cad",ckb_CAD.Checked==true|false));list.Add(newSqlParameter("@usb",ckb_USB.Checked==true|false));list.Add(newSqlParameter("@online",ckb_online.Checked==true|false));list.Add(newSqlParameter("@ps",ckb_PS.Checked==true|false));list.Add(newSqlParameter("@sw",ckb_sw.Checked==true|false));list.Add(newSqlParameter("@pe",ckb_poe.Checked==true|false));SqlParameter[]sp=list.ToArray();comm.Parameters.AddRange(sp);if(comm.ExecuteNonQuery()>0){lblbaocuo1.Text="";ckb_CAD.Checked=false;ckb_online.Checked=false;ckb_PS.Checked=false;ckb_USB.Checked=false;ckb_sw.Checked=false;ckb_poe.Checked=false;txt_Bumen.Text=txt_IP.Text=txt_Kebie.Text=txt_Name.Text=txt_No.Text=txt_Zubie.Text="";con.Close();this.ClientScript.RegisterStartupScript(this.GetType(),"message","<script>alert('修改成功!')</script>",true);}這個沒報錯,但是修改失敗
解决方案十二:
SqlParameter[]spt={newSqlParameter("@txtno",SqlDbType.VarChar,15),newSqlParameter("@txtname",SqlDbType.VarChar,15),newSqlParameter("@txtbumen",SqlDbType.VarChar,15),newSqlParameter("@txtkebie",SqlDbType.VarChar,15),newSqlParameter("@txtzubie",SqlDbType.VarChar,15),newSqlParameter("@ip",SqlDbType.VarChar,15),newSqlParameter("@cad",SqlDbType.Bit,8),newSqlParameter("@usb",SqlDbType.Bit,8),newSqlParameter("@online",SqlDbType.Bit,8),newSqlParameter("@ps",SqlDbType.Bit,8),newSqlParameter("@sw",SqlDbType.Bit,8),newSqlParameter("@pe",SqlDbType.Bit,8),spt[0].Value=txt_No.Text,spt[1].Value=txt_Name.Text,spt[2].Value=txt_Bumen.Text,spt[3].Value=txt_Kebie.Text,spt[4].Value=txt_Zubie.Text,spt[5].Value=txt_IP.Text,spt[6].Value=ckb_CAD.Text,spt[7].Value=ckb_USB.Checked==true|false,spt[8].Value=ckb_online.Checked==true|false,spt[9].Value=ckb_PS.Checked==true|false,spt[10].Value=ckb_sw.Checked==true|false,spt[11].Value=ckb_poe.Checked==true|false,};這個不知道怎麼轉型,object轉為sqlclient.sqlparamter類型
解决方案十三:
先说你遇到什么问题
解决方案十四:
spt[7].Value=ckb_USB.Checked?1:0
解决方案十五:
zx_y_cad、zx_y_usb等列的数据类型需要先确定正常是bit类型(MSSQL)如果是varchar也可以做、只是有些不科学。comm.Parameters.Add("@cad",SqlDbType.VarChar,50).Value=ckb_CAD.Checked.ToString();
还有、删掉上面CommandType那一行,你又没用存储过程、写这个做什么