我收到错误而且我不知道代码有什么问题,所以如果有人能帮助我,我将不胜感激。
错误:
','附近的语法不正确。
,突出显示的行是
rdr = cmd.ExecuteReader();
代码:
cn.Open();
string query = "SELECT * FROM dbo.ispiti WHERE poID=@poID, sgID=@sgID, npID=@npID";
SqlCommand cmd = new SqlCommand(query, cn);
cmd.Parameters.AddWithValue("@poID", pr);
cmd.Parameters.AddWithValue("@sgID", pr1);
cmd.Parameters.AddWithValue("@npID", pr2);
SqlDataReader rdr;
try
{
rdr = cmd.ExecuteReader();
if (rdr.Read())
{
MessageBox.Show("Well done!");
}
}
catch(exception ex)
{
MessageBox.Show("Error!");
}
finally
{
cn.Close();
}
答案 0 :(得分:7)
您的SQL语句中存在错误。你应该改变
string query = "SELECT * FROM dbo.ispiti WHERE poID=@poID, sgID=@sgID, npID=@npID";
到
string query = "SELECT * FROM dbo.ispiti WHERE poID=@poID AND sgID=@sgID AND npID=@npID";
答案 1 :(得分:2)
您无法在WHERE
clause中使用逗号。您需要使用AND
或OR
等逻辑操作;
WHERE poID=@poID AND sgID=@sgID AND npID=@npID
此子句后面加search condition,并且没有逗号的语法。
顺便说一下,使用using
statement自动处理您的连接,命令和阅读器,而不是手动调用Dispose
或Close
方法。
也不要使用AddWithValue
方法。 It may generate unexpected results sometimes。使用Add
方法重载来指定参数类型及其大小。