我正在尝试在我的网络应用程序中创建搜索功能。
基本上,我有一个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;
}
答案 0 :(得分:3)
我认为你的问题在这里
WHERE [identifier] LIKE '%' + @name + '%';
应该是
WHERE [identifier] LIKE '% + @name + %';
不应该在%标志周围加上单引号
答案 1 :(得分:0)
我认为你应该试试这个
string sql =“SELECT [identifier] WHERE [identifier] LIKE'%'+'@ name'+'%'”;