在asp.net中创建搜索功能

时间:2013-06-12 08:47:18

标签: c# asp.net sql web-applications

我正在尝试在我的网络应用程序中创建搜索功能。

基本上,我有一个text box和一个button。 我还有listbox来呈现搜索结果。

我在访问时使用了以下查询,但没有返回任何内容。

SELECT [identifier] FROM [Category3]
WHERE [identifier] LIKE '%' + @name + '%';

@name的值来自text box

我希望只搜索表格的一列,所以我想将结果呈现给list box

我是否需要使用DataSet来存储和呈现结果。

任何建议都将受到赞赏。

CODE:

 protected void Button1_Click(object sender, EventArgs e)
        {
            searchDB(TextBox1.Text);

        }



public DataSet searchDB(string identifier)
        {
            DataSet dataSet = new DataSet();
            // Create connection object
            OleDbConnection oleConn = new OleDbConnection(connString);
            try
            {
                oleConn.Open();
                string sql = "SELECT [identifier] WHERE [identifier] LIKE '% + @name + %'";

                OleDbCommand oleComm = new OleDbCommand(sql, oleConn);
                oleComm.Parameters.Add("@name", OleDbType.Char).Value = identifier;

                OleDbDataAdapter dataAdapter = new OleDbDataAdapter(sql, oleConn);
                dataAdapter.Fill(dataSet, "Category3");
            }
            catch (Exception ex)
            {
                Response.Redirect("Error.aspx");
            }
            finally
            {
                oleConn.Close();
            }
            if (dataSet.Tables.Count <= 0)
                return null;
            else
                return dataSet;
        }

enter image description here

2 个答案:

答案 0 :(得分:3)

我认为你的问题在这里

WHERE [identifier] LIKE '%' + @name + '%';

应该是

WHERE [identifier] LIKE '% + @name + %';

不应该在%标志周围加上单引号

答案 1 :(得分:0)

我认为你应该试试这个

string sql =“SELECT [identifier] WHERE [identifier] LIKE'%'+'@ name'+'%'”;