0

現在、「comment」、「comment_time」、「user」を表示するゲストブックがあります。下に検索ボックスを追加してから、「ユーザー」でグリッドビューを検索し、データを下の新しいグリッド ビューにバインドします。私は、すべてのデータ操作を Web サービス経由で渡すように厳密に指示されています。

現在、すべてのコメントを取得するための Web メソッドがあります。

[WebMethod]
    public DataSet SearchDatabase(string query)
    {
        DataSet ds = new DataSet();
        string database = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/dvd_forum.accdb;Persist Security Info=True";
        string queryStr = "SELECT * FROM Comments WHERE User LIKE '%query%'";
        OleDbConnection myConn = new OleDbConnection(database);
        OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(queryStr, myConn);
        myConn.Open();
        myDataAdapter.Fill(ds, "Comments");
        myConn.Close();
        return ds;
    }

フロントコードは次のとおりです。

<asp:Label ID="Label3" runat="server" Text="Search"></asp:Label><asp:TextBox ID="TextBoxSearch"
    runat="server"></asp:TextBox><asp:Button ID="ButtonSearch" 
runat="server" Text="Search" onclick="ButtonSearch_Click" />
<asp:GridView ID="GridView2" runat="server">

背後にあるコード:

protected void ButtonSearch_Click(object sender, EventArgs e)
{
    string query = TextBoxSearch.Text;

    localhost.Service1 myws = new localhost.Service1();
    ds = myws.SearchDatabase(query);
    GridView2.DataSource = ds;
    GridView2.DataBind();
}

新しい GridView やその他のアクションなしでページが更新されます。

別の補足として、入力にテキストを入力しない限り検索できない必須フィールドバリデーターを使用して、同じページに別の入力があります。どうすればこれを解決できますか?

ありがとう。

4

1 に答える 1

2
string queryStr = "SELECT * FROM Comments WHERE User LIKE '%"+query+"%'";
于 2012-05-16T13:48:05.213 に答える