问题描述
代码如下:privatevoidbutton1_Click(objectsender,EventArgse){//update();if(tbNo.Text!=""&&tbName.Text!=""){OleDbConnectioncon=newOleDbConnection();con.ConnectionString=Constring;stringsex;if(rbMale.Checked==true)sex="男";elsesex="女";OleDbCommandcmd=newOleDbCommand(@"updates_infosetsname="+tbName.Text+",sex="+sex+",birthday="+tbBirthday.Text+",specialty="+tbSpecialty.Text+",Sumcredit="+tbSumcredit.Text+"wheresno="+tbNo.Text+"",con);con.Open();cmd.Connection=con;cmd.ExecuteNonQuery();con.Close();adapter.SelectCommand.CommandText="select*froms_info";table.Clear();adapter.Fill(table);adapter.Update(table);}else{MessageBox.Show("请输入正确的学生信息");}}一个修改信息的代码,就是出现:语法错误(操作符丢失)在查询表达式。。。。中:,怎么改????
解决方案
解决方案二:
where前少了个空格
解决方案三:
cmd.Connection=con;这一句也是多余的,上面已经有了。
解决方案四:
89和where之间少空格,sno后面的编号又只有一个单引号,要么去掉,要么用完整的单引号补全
解决方案五:
引用1楼Poopaye的回复:
where前少了个空格
不对的!
解决方案六:
把你生成的sql带到数据库执行一下,就是sql的语法问题而已。如果是字符串类型,需要单引号,比如'"+tbSumcredit.Text+"'
解决方案七:
少单引号吧~~
解决方案八:
这要看你数据库类型来,如果是字符类型,参数要有单引号,where前面加空格
解决方案九:
搞好了结贴OleDbCommandcmd=newOleDbCommand("updates_infosetsname='"+tbName.Text+"',sex='"+sex+"',birthday='"+tbBirthday.Text+"',specialty='"+tbSpecialty.Text+"',Sumcredit='"+tbSumcredit.Text+"'wheresno="+tbNo.Text,con);
解决方案十:
89和where之间少空格,sno后面的编号又只有一个单引号,要么去掉,要么用完整的单引号补全