日期:2014-05-18  浏览次数:20964 次

c#中往数据库里插入数据时提示“从数据类型 varchar 转换为 numeric 时出错”。
c#中往数据库里插入数据时提示“从数据类型 varchar 转换为 numeric 时出错”。刚学求教:
刚才发的帖子是自己写好的数据插入没问题,但是这次是从界面取数据存到数据库里报错:从数据类型 varchar 转换为 numeric 时出错,这是怎么回事呢?

 string sql = "insert into studentInfo(studentID,studentName,studentSex,studentIDcard,studentAddress,bb) values('','"+tbxName.Text+"','"+tbxSex.Text+"','"+tbxID.Text+"','"+tbxAddress.Text+"','') ";
  SqlCommand cmd = new SqlCommand(sql,conn);
  cmd.ExecuteNonQuery();

------解决方案--------------------
string sql = "insert into studentInfo(studentID,studentName,studentSex,studentIDcard,studentAddress,bb) values('','"+tbxName.Text+"','"+tbxSex.Text+"','"+tbxID.Text+"','"+tbxAddress.Text+"','') ";

你定义的类型是 int 数字类型的
但赋值的时候是 ‘’ 表示字符类型的

如果你的studentid 为自增的,那就不要插入了

insert into studentInfo(studentName,studentSex,studentIDcard,studentAddress,bb) values('"+tbxName.Text+"','"+tbxSex.Text+"','"+tbxID.Text+"','"+tbxAddress.Text+"','') ";

这样就可以了



------解决方案--------------------
探讨

改完了,这次提示:cmd.ExecuteNonQuery();附近有语法错误


引用:

string sql = "insert into studentInfo(studentID,studentName,studentSex,studentIDcard,studentAddress,bb) values('','"+tbxName.Text+"','"+tbx……

------解决方案--------------------
数据库自动增长的ID,添加的时候就不需要写进sql了,数字类型外面不要单引号,其它都需要
学会调试,拿出你的sql到 数据库运行


string sql = "insert into studentInfo(studentName,studentSex,studentIDcard,studentAddress) values('"+tbxName.Text+"','"+tbxSex.Text+"',"+tbxID.Text+",'"+tbxAddress.Text+"') ";

如果你字段名和表名 没错, 
 studentName 字符串类型 studentSex 字符串类型 studentIDcard 数字类型且不为空 studentAddress字符串类型
那这个sql就没错了,只能说