-1

我想获得一个输入到搜索 txtbox 中的值和银行相似或相等的值。例子。

输入:G。

返回:所有带 G 的名称。

如果打字的人去甚至写乔瓦尼。只有乔瓦尼会被归还。

我的代码,但它只是返回相同的

[...]"select * from users where name = " + txt_name.Text, conn);
4

4 回答 4

1

尝试:

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

        }
于 2013-07-13T06:14:14.527 回答
0

使用通配符搜索,例如

如果您希望任何地方的所有名称都包含您的文本,请使用:

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]%'
于 2013-07-13T05:08:33.157 回答
0

尝试LIKE操作员:

SELECT * FROM users WHERE name LIKE 'G%'
于 2013-07-13T05:09:25.540 回答
0
SELECT names FROM table WHERE name LIKE '[your text]%'
于 2013-07-13T05:14:30.337 回答