0

私は自分のプロジェクト(SQL COMPACT)でこのコードを使用しています:

"select Name 
from Drug 
where Name 
like '" + Dname + "%'  
limit 10"

Dname文字列値です。結果はこのエラーです:

クエリの解析中にエラーが発生しました。

[トークンライン番号=1、トークンラインオフセット= 44、エラーのトークン= LIMIT]

なぜこれが起こっているのですか、どうすれば修正できますか?

4

3 に答える 3

4

あなたが欲しいのは

"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 +  '%');
于 2013-03-16T18:22:06.403 に答える
3

文字列連結を使用して 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())
        {
            ...
        }
    }
}
于 2013-03-16T18:27:01.660 に答える
2

この前の質問によると、適切な構文はTOP(n)であるため、これを試してください。

"select TOP(10) Name 
from Drug 
where Name 
like '" + Dname + "%' "
于 2013-03-16T18:33:34.663 に答える