使用 SqlDataReader 时出现 "Incorrect syntax near"-错误
Getting "Incorrect syntax near"-error with SqlDataReader
我遇到了错误,我不知道代码有什么问题,所以如果有人能帮助我,我将不胜感激。
错误:
Incorrect syntax near ','.
并且突出显示的行是
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();
}
您的 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";
您不能在 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
方法重载来指定您的参数类型及其大小。
我遇到了错误,我不知道代码有什么问题,所以如果有人能帮助我,我将不胜感激。
错误:
Incorrect syntax near ','.
并且突出显示的行是
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();
}
您的 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";
您不能在 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
方法重载来指定您的参数类型及其大小。