3

これが私のコードです

SQLiteConnection connection = new SQLiteConnection("Data Source=userData.dat;version=3;");
connection.Open();

SQLiteCommand cmd = connection.CreateCommand();

cmd.CommandText = "SELECT * FROM tags WHERE tags_tags LIKE '%@tags_tags%' ORDER by tags_id DESC LIMIT 0, 100";
cmd.Parameters.Add("@tags_tags", DbType.String);
cmd.Parameters["@tags_tags"].Value = tags;


SQLiteDataReader reader = cmd.ExecuteReader();
var _sql = cmd.CommandText;
MessageBox.Show(_sql);//still shows "SELECT * FROM tags WHERE tags_tags LIKE '%@tags_tags%' ORDER by tags_id DESC LIMIT 0, 100"

私も使用cmd.Parameters.AddWithValueしましたが機能しませんでした...
どこが間違っていますか?

4

1 に答える 1

3

文字列内のパラメーターを連結します。

LIKE '%' || @tags_tags || '%'

パラメータを一重引用符で囲んで、値にします。一重引用符を削除し、パラメーターの値のパーセント記号を連結します。

LIKE @tags_tags

そしてあなたのパラメータでは、

cmd.Parameters["@tags_tags"].Value = '%' + tags + '%';
于 2013-01-08T09:29:46.837 に答える