我无法在代码中找到错误,但它显示了我
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();
错误是什么以及如何修复它可以帮助我吗? 感谢
答案 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();