我在我的项目中使用此代码(SQL COMPACT):
"select Name
from Drug
where Name
like '" + Dname + "%'
limit 10"
Dname
是一个字符串值。结果是这个错误:
解析查询时出错。
[令牌行号= 1,令牌行偏移量= 44,错误令牌= LIMIT]
为什么会发生这种情况,我该如何解决?
我在我的项目中使用此代码(SQL COMPACT):
"select Name
from Drug
where Name
like '" + Dname + "%'
limit 10"
Dname
是一个字符串值。结果是这个错误:
解析查询时出错。
[令牌行号= 1,令牌行偏移量= 44,错误令牌= LIMIT]
为什么会发生这种情况,我该如何解决?
我想你想要的是
"select TOP (10)
from Drug
where Name
like '" + Dname + "%' "
您还应该尝试使用参数化查询:
string qry = "select TOP(10) from Drugs where name like @dname";
SqlCommand oCmd = new SqlCommand(qry, ConnectionString);
oCmd.Parameters.AddWithValue("@dname", dname + '%');
切勿使用字符串连接来构建 SQL 查询。始终使用参数化查询:
string connectionString = ....
using (var conn = new SqlConnection(connectionString))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT TOP 10 FROM drug WHERE name LIKE @name";
cmd.Parameters.AddWithValue("@name", Dname + '%');
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
...
}
}
}
根据this previous question,正确的语法是TOP(n)
,所以试试这个:
"select TOP(10) Name
from Drug
where Name
like '" + Dname + "%' "