我想获得一个输入到搜索 txtbox 中的值和银行相似或相等的值。例子。
输入:G。
返回:所有带 G 的名称。
如果打字的人去甚至写乔瓦尼。只有乔瓦尼会被归还。
我的代码,但它只是返回相同的
[...]"select * from users where name = " + txt_name.Text, conn);
尝试:
"SELECT * FROM users WHERE name LIKE '" + txt_name.Text +"%'"
顺便说一句Parameters
,因为您的代码容易受到Sql Injection的影响,例如:(我在这里使用 Sql,所以只需将其更改为 mySql Connection、Adapter 等)
using (SqlConnection connection = new SqlConnection(connString))
{
string sql = "SELECT * FROM users WHERE name LIKE @NameSearch";
try
{
connection.Open();
using (SqlDataAdapter da = new SqlDataAdapter(sql, connection))
{
using (SqlCommand cmd = new SqlCommand())
{
da.SelectCommand.Parameters.AddWithValue("@NameSearch", txt_Name.Text+"%");
DataTable dt = new DataTable();
da.Fill(dt);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
使用通配符搜索,例如
如果您希望任何地方的所有名称都包含您的文本,请使用:
Select names from table where name like '%[your text]%'
如果您想要所有以文本开头的名称,请使用:
Select names from table where name like '[your text]%'
如果您想要所有以您的文本结尾的名称使用:
Select names from table where name like '%[your text]%'
尝试LIKE
操作员:
SELECT * FROM users WHERE name LIKE 'G%'
SELECT names FROM table WHERE name LIKE '[your text]%'