A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 崔楠 中级黑马   /  2012-4-13 21:18  /  2269 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1技术分 +2 收起 理由
郑文 + 2

查看全部评分

3 个回复

倒序浏览
insert into Student(学号,姓名,专业)  中间的逗号你是在中文输入法下输入的  所以出错了  O(∩_∩)O哈哈~   

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
试试这样,把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();

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
首先建议下你数据库表的字段名称最好不要用中文啦,养成这个习惯,然后根据你的问题,我建议就先string sql = "insert into Student values('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"')"; ,表后不要加具体插入的列,这样就可以测试到底是什么问题,

要学会一个个排除问题

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马