System.Data.OleDb.OleDbException: UPDATE 语句的语法错误

ara2011 2011-09-13 01:57:02
public int SaveValues()
{
if (RecordID > 0)
{
string sqlconnectstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
OleDbConnection ASmdbCon;

//连接数据库
sqlconnectstr += System.Windows.Forms.Application.StartupPath + "\\DB.mdb";
ASmdbCon = new OleDbConnection(sqlconnectstr);

try
{
ASmdbCon.Open();
//MessageBox.Show("OK");
}
catch (System.Exception ex)
{

System.Windows.Forms.MessageBox.Show("打开数据库失败!\n\n详细信息如下:\n" + ex.ToString());
return -1;
}

try
{

string sqlcmd = "UPDATE List SET ";

sqlcmd += "A1 = '" + A1.ToString() + "', ";
sqlcmd += "A2 = '" + A2.ToString() + "', ";
。。。
。。。
sqlcmd += "HR = '" + HR.ToString() + "', ";
sqlcmd += "D5 = '" + D5.ToString() + "', ";

sqlcmd += "S1 = '" + S1.ToString() + "', ";
sqlcmd += "X1 = '" + X1.ToString() + "', ";
sqlcmd += "ProjectName = '" + ProjectName.ToString() + "' ";
sqlcmd += " WHERE ID = " + RecordID.ToString();



OleDbCommand dbCommand = new OleDbCommand(sqlcmd, ASmdbCon);
if (dbCommand.ExecuteNonQuery() > 0)
{
dbCommand.Dispose();
return 1;
}
else
{
dbCommand.Dispose();
return -1;
}
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show("出错啦!SAVE ID" + ex.ToString());
}
return -1;

程序运行到“ if (dbCommand.ExecuteNonQuery() > 0)”就出错啦,说是“System.Data.OleDb.OleDbException: UPDATE 语句的语法错误”,显示出错是“ if (dbCommand.ExecuteNonQuery() > 0)”。
到底是什么原因呢,还请各位大侠,多多指教,之前是因为“ sqlcmd += "ProjectName = '" + ProjectName.ToString() + "' ";”中多了一个逗号,改完之后是可以的,后来加了一些 相同形式的sqlcmd就又出现这种错误啦,这是怎么回事呢? 急急急~·
...全文
208 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ara2011 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 aykkk 的回复:]
if (dbCommand.ExecuteNonQuery() > 0)
这里设置个断点,运行到此处后看上一句的sqlcmd的值,看看那个地方没有对上,另外你要拼接字符串,要用stringbulder,不用sting
[/Quote]

“stringbulder”是什么在Visual sdudio中的C#语言中我没有见过,你的意思是说把这句
“ string sqlcmd = "UPDATE List SET ";”中的string改为“stringbulder”嘛,不是吧,显示的是错误呀,还是在MSSQL中
aykkk 2011-09-13
  • 打赏
  • 举报
回复
if (dbCommand.ExecuteNonQuery() > 0)
这里设置个断点,运行到此处后看上一句的sqlcmd的值,看看那个地方没有对上,另外你要拼接字符串,要用stringbulder,不用sting
ara2011 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sgzhou12345 的回复:]
方法2 :
string sqlcmd = "UPDATE List SET ";

sqlcmd += "A1 = '" + A1.ToString() + "', ";
sqlcmd += "A2 = '" + A2.ToString() + "', ";
。。。
。。。
sqlcmd += "HR = '" + HR.ToString() + ……
[/Quote]
测试啦,只是说“string sqlcmd = "UPDATE List SET ";"中“=”有问题,可是应该没有问题呀,还是谢谢你的帮忙,分一定会给的等我结帖的哈

ara2011 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 sgzhou12345 的回复:]
MSSQL语句肯定有问题
[/Quote]
太悲剧啦,我不会用MSSQL,我只是在VStudio 2008中编的
山东蓝鸟贵薪 2011-09-13
  • 打赏
  • 举报
回复
MSSQL语句肯定有问题
山东蓝鸟贵薪 2011-09-13
  • 打赏
  • 举报
回复
方法2 :
string sqlcmd = "UPDATE List SET ";

sqlcmd += "A1 = '" + A1.ToString() + "', ";
sqlcmd += "A2 = '" + A2.ToString() + "', ";
。。。
。。。
sqlcmd += "HR = '" + HR.ToString() + "', ";
sqlcmd += "D5 = '" + D5.ToString() + "', ";

sqlcmd += "S1 = '" + S1.ToString() + "', ";
sqlcmd += "X1 = '" + X1.ToString() + "', ";
sqlcmd += "ProjectName = '" + ProjectName.ToString() + "' ";
sqlcmd += " WHERE ID = " + RecordID.ToString();
memo1.text=sqlcmd;
将这些语句在MSSQL数据库中运行一下,就能看出问题了
ara2011 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ara2011 的回复:]
引用 6 楼 sgzhou12345 的回复:
你用一个MessageBox.Show(),测试一下每行得到SQL语句吧
问题应该就在SQL语句上

怎么写呢,我刚刚开始学C#,对这些不太懂,可否赐教一下
[/Quote]
我看了一下,每行得到的数据已经赋值的是赋得值,没有赋值的是“-1”这应该是正确的呀
ara2011 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sgzhou12345 的回复:]
你用一个MessageBox.Show(),测试一下每行得到SQL语句吧
问题应该就在SQL语句上
[/Quote]
怎么写呢,我刚刚开始学C#,对这些不太懂,可否赐教一下
山东蓝鸟贵薪 2011-09-13
  • 打赏
  • 举报
回复
你用一个MessageBox.Show(),测试一下每行得到SQL语句吧
问题应该就在SQL语句上
ara2011 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zetee 的回复:]
sqlcmd 看一下里面的SQL 能跑不
[/Quote]

怎么看SQL能不能跑,用词好专业,不懂
ara2011 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sgzhou12345 的回复:]
可能是参数不对吧
[/Quote]
哪些参数不对呢,之前怎么就可以呢,现在又加了一些“sqlcmd 。。。。”就不行啦,access中没有存进去
山东蓝鸟贵薪 2011-09-13
  • 打赏
  • 举报
回复
可能是参数不对吧
ara2011 2011-09-13
  • 打赏
  • 举报
回复
什么意思,不太懂
zetee 2011-09-13
  • 打赏
  • 举报
回复
sqlcmd 看一下里面的SQL 能跑不

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧