我有一个包含1个表的数据库,该表有1列保存我的文件监视器。我希望用户能够搜索他们选择的文件扩展名,但是很难让它正常工作。我可以查询所有文件扩展名,但是当我尝试将用户输入用作变量时,似乎无法正常工作。 (还使用通配符进行搜索)。我的问题主要是只有select语句。(或者我认为。)
string str = textBox1.Text.Trim();
query = "SELECT * FROM LOG WHERE ENTRY like '%@str%'";
using (SQLiteCommand cmd = new SQLiteCommand(query, conn))
{
using (SQLiteDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
listBox1.Items.Add((string) reader["ENTRY"]);
}
}
}
答案 0 :(得分:1)
您没有将参数设置为查询。此外,您需要将通配符与查询文本中的参数分开。 试试这个:
string str = textBox1.Text.Trim();
query = "SELECT * FROM LOG WHERE ENTRY like '%' || @str || '%'";
using (SQLiteCommand cmd = new SQLiteCommand(query, conn))
{
// Might need a different data type here
cmd.Parameters.Add("@str", SQLiteType.Text).Value = str;
using (SQLiteDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
listBox1.Items.Add((string)reader["ENTRY"]);
}
}
}