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 回答