asp.net c# 中的这个 SQL 更新查询的语法错误是什么?
what is the syntax error in this SQL update query in asp.net c#?
我在动态创建的简单更新查询中遇到错误 table,只是无法理解这里的错误是什么..
c#代码:
cmd2 = new SqlCommand("UPDATE " + tname + "SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno", con99);
cmd2.Parameters.AddWithValue("@ans", ans);
cmd2.Parameters.AddWithValue("@sans", sans);
cmd2.Parameters.AddWithValue("@chk", chk);
cmd2.Parameters.AddWithValue("@qno", qno);
cmd2.ExecuteNonQuery(); //error showing here in vstudio
错误:
An exception of type 'System.Data.SqlClient.SqlException' occurred in
System.Data.dll but was not handled in user code Additional
information: Incorrect syntax near 'ans'
至少缺少一个问题 spaces。 SET
前需要一个space。
cmd2 = new SqlCommand("UPDATE " + tname + " SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno)", con99);
您不能将 table 名称作为参数输入。令人高兴的是,您确实将其他值作为参数放入。
使用AddWithValue()
请谨慎。它可能会导致打字错误。使用正确的类型显式添加更安全。
您在 table 名称后缺少 space,并且您有一个不必要的右括号:
"UPDATE " + tname + " SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno"
您在查询末尾有一个杂散的右括号,以及其他答案中提到的缺失 space:
"UPDATE " + tname + "SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno)"
应该是:
"UPDATE " + tname + " SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno"
我在动态创建的简单更新查询中遇到错误 table,只是无法理解这里的错误是什么..
c#代码:
cmd2 = new SqlCommand("UPDATE " + tname + "SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno", con99);
cmd2.Parameters.AddWithValue("@ans", ans);
cmd2.Parameters.AddWithValue("@sans", sans);
cmd2.Parameters.AddWithValue("@chk", chk);
cmd2.Parameters.AddWithValue("@qno", qno);
cmd2.ExecuteNonQuery(); //error showing here in vstudio
错误:
An exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll but was not handled in user code Additional information: Incorrect syntax near 'ans'
至少缺少一个问题 spaces。 SET
前需要一个space。
cmd2 = new SqlCommand("UPDATE " + tname + " SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno)", con99);
您不能将 table 名称作为参数输入。令人高兴的是,您确实将其他值作为参数放入。
使用AddWithValue()
请谨慎。它可能会导致打字错误。使用正确的类型显式添加更安全。
您在 table 名称后缺少 space,并且您有一个不必要的右括号:
"UPDATE " + tname + " SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno"
您在查询末尾有一个杂散的右括号,以及其他答案中提到的缺失 space:
"UPDATE " + tname + "SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno)"
应该是:
"UPDATE " + tname + " SET ans=@ans, sans=@sans, chk=@chk WHERE qno=@qno"