【发布时间】:2020-11-14 17:06:25
【问题描述】:
抱歉,我只是在学习 C#。我习惯了 HTML/PHP,然后是实际编程。
我正在寻找使用 SQL SELECT 来查看搜索结果中的数据但是很可能由于多个 LIKE 它可能会带来多行(我想要)但是如果它带来多行而不是选择第一行来显示我想要一条 IF 消息,说明有不止一行与条件匹配。以下是我当前的代码(我在 if (recordfound) 之后删除了一些代码以缩短此问题的代码)
SqlConnection con1 = new SqlConnection(@Settings.Default.database);
con1.Open();
string qu = "SELECT * FROM addresses WHERE road LIKE '%" + inclocroad.Text.Trim() + "%' OR postcode LIKE '%" + inclocroad.Text.Trim() + "%' OR full_address LIKE '%" + inclocroad.Text.Trim() + "%' OR Property LIKE '%" + inclocno.Text.Trim() + "%' OR full_address2 LIKE '%" + inclocroad.Text.Trim() + "%' ";
SqlCommand cmd1 = new SqlCommand(qu, con1);
SqlDataReader dr = cmd1.ExecuteReader();
bool recordfound = dr.Read();
if (recordfound)
{
//Displays data from row
}
else
{
messagebox.show("No data found");
}
示例
用户点击按钮
SQL 在用户写入搜索结果的地方使用 SELECT QUERY
如果 SELECT QUERY 超过 1 行则显示消息框
否则显示与搜索结果匹配的唯一行。
【问题讨论】:
-
感谢您的建议。我知道 SQL 注入,但是我有一个预防措施,服务器检查某人所做的每一件事,如果检测到 SQL 注入运行良好,则将他们踢出应用程序。无论如何,这是一个私人应用程序,所以我并没有对此大惊小怪。
-
我的文本框不允许除文本和数字以外的任何内容。
-
我更喜欢处理对象,而不是使用 DataTables,一个简单的 ORM 就可以解决问题。像 Dapper 一样,来自我们在 stackoverflow 上的朋友stackexchange.github.io/Dapper