gpt4 book ai didi

C# 数据库搜索(如何创建查询字符串)

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:41 26 4
gpt4 key购买 nike

我正在尝试在我的 C# WindowsForms 应用程序中进行 MySQL 数据库搜索。我有 16 个搜索值(例如:年龄、状态、高度、体重……等)。问题是,我不需要填写所有值来执行搜索,而且我不知道如何设置查询字符串。如果我只填写“年龄”和“身份”字段,它应该类似于:

 string querySearch = " SELECT * FROM table WHERE age=" + value1 +"status="+value2;
MySqlCommand cmdSearch = new MySqlCommand(querySearch, conn);
readerSearch = cmdSearch.ExecuteReader();
readerSearch.Read();

但我不知道用户想要填写多少字段,所以我必须更动态地编写查询(WHERE 部分)。谁能建议如何解决这个问题?谢谢。

最佳答案

我经常使用的一个技巧是以简单的条件结束查询字符串,然后根据需要添加字段。例如

// Note the trivial condition
string query = "SELECT * FROM table WHERE 1 = 1";

// Add any number of "AND ..." clauses, as needed.
if( age.HasValue ) query += " AND age = " + age.Value;
if( name.HasValue) query += " AND name LIKE \"%" + name.Value + "\"";
if( id.HasValue) query += " AND id = " + id.value;
// ...

MySqlCommand cmdSearch = new MySqlCommand(querySearch, conn);
readerSearch = cmdSearch.ExecuteReader();
readerSearch.Read();

请注意,这是一个非常简单的示例,仅用于说明“WHERE 1 = 1”技巧。实际上,您应该始终使用查询参数,或者至少验证您的用户输入。此外,字符串连接可以替换为 StringBuilder 以获得更好的性能。

关于C# 数据库搜索(如何创建查询字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29227363/

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