私は自分のプロジェクト(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())
{
...
}
}
}
この前の質問によると、適切な構文はTOP(n)
であるため、これを試してください。
"select TOP(10) Name
from Drug
where Name
like '" + Dname + "%' "