0

Web アプリケーションで検索機能を作ろうとしています。

基本的に、私は 1text boxと 1を持っていbuttonます。またlistbox、検索結果をレンダリングする必要があります。

何も返さないアクセスで次のクエリを使用しています。

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

の値@nameは から取得されtext boxます。

テーブルの 1 列のみを検索しようとしているので、返された結果をlist box.

結果を保存およびレンダリングするために DataSet を使用する必要がありますか。

アドバイスをいただければ幸いです。

コード:

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

ここに画像の説明を入力

4

2 に答える 2

3

あなたの問題はここにあると思います

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

そのはず

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

% 記号を一重引用符で囲むべきではありません

于 2013-06-12T09:06:25.540 に答える
0

私はあなたがこれを試してみるべきだと思います

string sql = "SELECT [識別子] WHERE [識別子] LIKE '%' + '@name' + '%' ";

于 2013-06-12T13:18:00.047 に答える