问题描述
我做了一个密码修改的页面,但是在运行点击保存按钮时一直显示我的“UPDATE语句错误”但是我检查了语句感觉没有错误啊我的数据库内的字段类型是文本所以麻烦帮我看看是哪里的问题,谢谢privatevoid口令更改_Load(objectsender,EventArgse){mycnn.ConnectionString=登录.cnnstr;textBox1.Text=登录.user_id;SQLCMD.CommandText="select*from管理员信息表whereBH='"+textBox1.Text.ToString()+"'";SQLCMD.Connection=mycnn;mycnn.Open();OleDbDataReaderreader=SQLCMD.ExecuteReader();while(reader.Read()){textBox1.Text=reader["BH"].ToString();textBox2.Text=reader["XM"].ToString();try{textBox3.Text=Decrypt("nbu","2015",reader["PASSWORD"].ToString());}catch{textBox3.Text=reader["PASSWORD"].ToString();}}reader.Close();mycnn.Close();}privatevoidbutton1_Click(objectsender,EventArgse){stringpsw=Encrypt("nbu","2015",textBox3.Text);SQLCMD.CommandText="update管理员信息表setXM='"+textBox2.Text.ToString()+"',PASSWORD='"+textBox3.Text.ToString()+"'whereBH='"+textBox1.Text.ToString()+"'";SQLCMD.Connection=mycnn;mycnn.Open();SQLCMD.ExecuteNonQuery();MessageBox.Show("保存成功");mycnn.Close();}
解决方案
解决方案二:
设置多个字段不能这么写,应该是update表(字段1,字段2,...)values(值1,值2,...)
解决方案三:
1.语法应该是这样的:UPDATE表名称SET列名称=新值WHERE列名称=某值2.你的SQL文句“where”前面少一个空格
解决方案四:
where前面少空格
解决方案五:
引用1楼caozhy的回复:
设置多个字段不能这么写,应该是update表(字段1,字段2,...)values(值1,值2,...)
那按照UPDATE表名称SET列名称=新值WHERE列名称=某值这样写可以吗
解决方案六:
引用2楼nry19871012的回复:
1.语法应该是这样的:UPDATE表名称SET列名称=新值WHERE列名称=某值2.你的SQL文句“where”前面少一个空格
我改过后还是这样哎
解决方案七:
还是老话。把要执行的sql语句先显示出来看看。
解决方案八:
BH有多值了吧
解决方案九:
1.应该先mycnn.Open()在前,改下执行顺序在看看!stringpsw=Encrypt("nbu","2015",textBox3.Text);mycnn.Open();SQLCMD.CommandText="update管理员信息表setXM='"+textBox2.Text.ToString()+"',PASSWORD='"+textBox3.Text.ToString()+"'whereBH='"+textBox1.Text.ToString()+"'";SQLCMD.Connection=mycnn;SQLCMD.ExecuteNonQuery();MessageBox.Show("保存成功");mycnn.Close();
2.打断点跟踪调试下,SQL语句拷贝出来,现在SQL查询分析器里面执行下,看有没有报错!