c#对Access的简单操作老出低级问题?请教!!
准备工作:在"D:\喷油嘴测试台"目录下建立PYZ.mdb数据库!里面有唯一的表mTest其字段除了id是数字外,其于都是文本.
写代码:
private void button1_Click(object sender, System.EventArgs e)
{
//数据源字符串
string strSource = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\喷油嘴测试台\\PYZ.mdb ";
//SQL语句
string strSQL = "insert into mTest(id,Mbh,Pbh,Cd,MY,Mcd,Jy,Qpp) value ( ' "+n+ " ', ' "+textBox3.Text+ " ', ' "+textBox4.Text + " ', ' "+textBox5.Text+ " ', ' "+textBox6.Text+ " ', ' "+textBox7.Text+ " ', ' "+textBox9.Text+ " ', ' "+textBox8.Text+ " ') ";
//打开数据库
OleDbConnection myConn = new OleDbConnection(strSource);
try
{
myConn.Open();
}
catch(Exception f)
{
MessageBox.Show(f.Message);
}
//执行SQL语句
try
{
OleDbCommand myCommand = new OleDbCommand(strSQL,myConn);
myCommand.ExecuteNonQuery();
}
catch(Exception f)
{
MessageBox.Show(f.Message);
}
myConn.Close();
}
问题:
总是在执行myCommand.ExecuteNonQuery()的时候抛出异常!说insert语句有语法错误!我设断点,在立即窗口中复制出该SQL语句为:insert into mTest(id,Mbh,Pbh,Cd,MY,Mcd,Jy,Qpp) value ( '530671723 ', '4356 ', '3456 ', '456-345 ', '34.67 ', '324.6 ', '435.56 ', '324 4356 ')将其复制到Mysql中调试可以执行,为什么在程序里就出错?另外如果使用reader =myCommand.ExecuteReader()查找记录,就不报错了.可是查出的reader为空没有任何行/列(我之前手动加了些数据)!如此简单的操作怎么老出错?请各位帮我看看,问题出在那里?谢谢各位了!
------解决方案--------------------1.value -> values
2.把id值的引号去掉...
3.如果id是自增长列把id列和值都去掉...