黑马程序员技术交流社区

标题: 在C#程序中 写入数据库数据时总是出错 [打印本页]

作者: 崔楠    时间: 2012-4-13 21:18
标题: 在C#程序中 写入数据库数据时总是出错
string sql = "insert into Student(学号,姓名,专业)values('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"')";
           OleDbConnection dbCon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=StudentInfo.mdb");
           dbCon.Open();
           OleDbCommand cmd = dbCon.CreateCommand();
           cmd.CommandText = sql;
           int result = cmd.ExecuteNonQuery();
           if (result == 1)
               MessageBox.Show("写入成功!");
           else
               MessageBox.Show("写入失败!");
           dbCon.Close();

数据库是Access 数据表中有三个字段 分别是学号、姓名、专业 ;在调试运行的时候总是提示说“查询值的数目与目标字段中的数目不同”请问是这么回事   

作者: 林其响    时间: 2012-4-13 22:01
insert into Student(学号,姓名,专业)  中间的逗号你是在中文输入法下输入的  所以出错了  O(∩_∩)O哈哈~   
作者: 王雪磊    时间: 2012-4-14 09:23
试试这样,把Access的字段加上引号,或者是换成字母组合的
string sql = "insert into Student(‘学号','姓名','专业')values('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"')";
           OleDbConnection dbCon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=StudentInfo.mdb");
           dbCon.Open();
           OleDbCommand cmd = dbCon.CreateCommand();
           cmd.CommandText = sql;
           int result = cmd.ExecuteNonQuery();
           if (result == 1)
               MessageBox.Show("写入成功!");
           else
               MessageBox.Show("写入失败!");
           dbCon.Close();
作者: 邱国    时间: 2012-4-14 10:14
首先建议下你数据库表的字段名称最好不要用中文啦,养成这个习惯,然后根据你的问题,我建议就先string sql = "insert into Student values('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"')"; ,表后不要加具体插入的列,这样就可以测试到底是什么问题,

要学会一个个排除问题





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2