4

私はいつもこのエラーを受け取ります

"s" 付近: 構文エラー

私の実装:

litecon.ConnectionString = "Data Source=" + AppAddress + "\\database\\mynew22.db;Version=3;UTF16Encoding=True";

このメソッドからエラーが発生しました -> liteda.Fill(dt);

        if (lang == "FaToMe")
            liteda.SelectCommand = new SQLiteCommand("select * from mey where trans like '%" + str + "%'", litecon);
        else
            liteda.SelectCommand = new SQLiteCommand("select * from mey where pe like '%" + str + "%'", litecon);

        DataTable dt = new DataTable();
        liteda.Fill(dt); //liteda is SQLiteDataAdapter

この選択コマンドに違いはありません...

"select * from mey where pe like '%" + str + "%'"

また

"select eng "

常に "s" の近くで言う: 構文エラー

ただし、「xselect * from mey」を使用する場合は、「x」の近くで言ってください: 構文エラー

私はこのライブラリを使用しています http://adodotnetsqlite.sourceforge.net/

4

3 に答える 3

6

値にアポストロフィが含まれている場合str、文字列の終了が早すぎるため、このクエリは機能しません。

select * from mey where trans like '%King Solomon's Mines%'

パラメータを使用する必要があります:

cmd = new SQLiteCommand("select * from mey where trans like @pattern", litecon);
cmd.Parameters.AddWithValue("@pattern", "%" + str + "%");
于 2013-06-24T16:45:01.923 に答える
0

問題は解決しました!

これらのライブラリを使用し、問題は解決しました... http://www.devart.com/dotconnect/sqlite/download.html

みんなありがとう

于 2013-06-25T06:41:37.837 に答える