System.Data.SqlClient.SqlException:'''附近的语法错误。'。'

时间:2017-06-27 21:47:44

标签: c# sql

我无法在代码中找到错误,但它显示了我

  

System.Data.SqlClient.SqlException:''

附近的语法不正确
SqlCommand myCommand = new SqlCommand(" insert into" +
    " INTERVALDATA4(SerialNumber, TimeStamp, MeterData, ) " +
    "values(" + meterReading.SerialNumber + ", '" + reading.TimeStamp.ToString()
    + "'," + reading.RawReading +");", myConnection);
myCommand.ExecuteNonQuery();

错误是什么以及如何修复它可以帮助我吗? 感谢

2 个答案:

答案 0 :(得分:2)

INTERVALDATA4(SerialNumber, TimeStamp, MeterData, )替换为INTERVALDATA4(SerialNumber, TimeStamp, MeterData),因为您有一个额外的逗号。我可以看到'附带的一些额外参数,但其中一些不是,如果您仍然遇到此问题,请尝试用'将所有参数括起来。

无论如何,我会考虑使用SqlParameter传递参数而不是原始查询,因为你这样开放sql注入。

答案 1 :(得分:0)

为了更容易发现拼写错误并避免SQL注入,请考虑参数化您的查询:

string myQuery = "INSERT INTO INTERVALDATA4(SerialNumber, TimeStamp, MeterData) VALUES (@serialNumber, @timeStamp, @rawReading)";
SqlCommand myCommand = new SqlCommand(myQuery, myConnection);
myCommand.Parameters.Add("@serialNumber", meterReading.SerialNumber);
myCommand.Parameters.Add("@timeStamp", reading.TimeStamp.ToString());
myCommand.Parameters.Add("@rawReading", reading.RawReading);

myCommand.ExecuteNonQuery();