问题描述
privatevoid(浏览按钮代码)button1_Click(objectsender,System.EventArgse){openFileDialog1.RestoreDirectory=true;DialogResultresult=openFileDialog1.ShowDialog();if(result!=DialogResult.OK){return;}filename=openFileDialog1.FileName;saveFileDialog1.FileName=filename;textBox3.Text=filename;}privatevoid(//插入按钮)button2_Click(objectsender,System.EventArgse){//这些都是我的对应四个字段文本框stringbh=textBox1.Text;stringmc=textBox2.Text;stringwe=textBox3.Text;stringsm=textBox4.Text;OleDbConnectionconn=newOleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=Score.mdb");stringsqlString=@"Insertinto图片(编号,名称,位置,说明)values(";sqlString+="'"+bh+"','"+sm+"',"+we+","+sm+")";OleDbCommandcomm=newOleDbCommand(sqlString,conn);conn.Open();try{comm.ExecuteNonQuery();MessageBox.Show("插入成功!");}catch(Exceptionex){MessageBox.Show("插入出错!错误原因为:n"+ex.Message+"n");}conn.Close();}这是我的截图
解决方案
解决方案二:
注意,将路径中的“”字符进行转义,或者在你的路径前面加上一个@"c:document.....",这表示@后面的字符当成字符串处理,不需转义。
解决方案三:
还是不行,错误提示我的插入语句什么错误……急,在线等qq379136683
解决方案四:
stringsqlString=@"Insertinto图片(编号,名称,位置,说明)values(";sqlString+="'"+bh+"','"+sm+"',"+we+","+sm+")";第二行写成sqlString+="'"+bh+"','"+sm+"',"+@we+","+sm+")";试试,再仔细检查一下sql语句的语法关键在于你那个"位置"那一行需要转义而你@写在第一行,第二行用+号联起来,这样第二行的"位置"的值还是没有转义啊
解决方案五:
大侠,原来是我的sql语句写错了,谢谢你的提醒“stringsqlString=@"Insertinto图片(编号,名称,位置,说明)values(";”这句图片后的几个字段不用写的(编号,名称,位置,说明);但是还要谢谢你,呵呵