C# 在asp.net中创建搜索功能

C# 在asp.net中创建搜索功能,c#,asp.net,sql,web-applications,C#,Asp.net,Sql,Web Applications,我正在尝试在我的web应用程序中实现搜索功能 基本上,我有一个文本框和一个按钮。 我还有listbox来呈现搜索结果 我正在对access使用以下查询,但未返回任何内容 SELECT [identifier] FROM [Category3] WHERE [identifier] LIKE '%' + @name + '%'; @name的值来自文本框 我希望只搜索表中的一列,因此我希望将返回结果呈现到列表框 我是否需要使用数据集来存储和呈现结果 如有任何建议,将不胜感激 代码: prote

我正在尝试在我的web应用程序中实现搜索功能

基本上,我有一个
文本框
和一个
按钮
。 我还有
listbox
来呈现搜索结果

我正在对access使用以下查询,但未返回任何内容

SELECT [identifier] FROM [Category3]
WHERE [identifier] LIKE '%' + @name + '%';
@name
的值来自
文本框

我希望只搜索表中的一列,因此我希望将返回结果呈现到
列表框

我是否需要使用数据集来存储和呈现结果

如有任何建议,将不胜感激

代码:

 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;
        }
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
searchDB(TextBox1.Text);
}
公共数据集searchDB(字符串标识符)
{
数据集=新数据集();
//创建连接对象
OLEDB连接oleConn=新的OLEDB连接(connString);
尝试
{
尺骨鹰嘴开();
string sql=“选择[identifier],其中[identifier]类似于“%+@name+%””;
OleDbCommand oleComm=新的OleDbCommand(sql,oleConn);
Parameters.Add(“@name”,OleDbType.Char).Value=identifier;
OleDbDataAdapter dataAdapter=新的OleDbDataAdapter(sql,OLECTONN);
dataAdapter.Fill(数据集,“Category3”);
}
捕获(例外情况除外)
{
重定向(“Error.aspx”);
}
最后
{
鹰嘴闭合();
}

如果(dataSet.Tables.Count我想你的问题就在这里

WHERE [identifier] LIKE '%' + @name + '%';
应该是

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

不应该在%符号周围加单引号我想你的问题就在这里

WHERE [identifier] LIKE '%' + @name + '%';
应该是

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

不应该在%符号周围加单引号我想你应该试试这个


string sql=“选择[identifier],其中[identifier]类似于“%”+“@name”+“;

我想您应该试试这个


string sql=“选择[identifier]其中[identifier]类似于“%”++“@name”++“%”;

如果name=help,那么
从[Category3]中选择[identifier],其中[identifier]类似于“%”help“%”;
查看您所指的错位引号。尝试“选择[identifier]其中[identifier]类似于“++@name+%””;也不是这样。如果运行查询,则会产生值?如果name=help,则
从[Category3]中选择[identifier],其中[identifier]类似于“%”help“%”;
查看您所指的放错位置的引号。请尝试“选择[identifier]其中[identifier]类似于“%+@name+%”;也不这样工作..如果运行查询会带来值?+1 Dev N00B您是对的,我有评论,但OP说它不工作。+1 Dev N00B您是对的,我有评论,但OP说它不工作。