gpt4 book ai didi

c# - SQLite 使用用户输入选择查询 C#

转载 作者:行者123 更新时间:2023-12-02 05:07:27 26 4
gpt4 key购买 nike

我有一个包含 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"]);
}
}
}

最佳答案

您没有为查询设置参数。此外,您需要将查询文本中的通配符与参数分开。试试这个:

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"]);
}
}
}

关于c# - SQLite 使用用户输入选择查询 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46860268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com