2012-05-16 77 views
0

我有一條留言,此刻顯示「評論」,「評論時間」,「用戶」。我想在下面添加一個搜索框,然後通過「user」搜索gridview,然後將數據綁定到下面的新網格視圖。我嚴格按照說明通過Web服務傳遞所有數據交互。搜索GridView

我目前所面對的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或任何其他操作。

在另一邊注: 我在同一頁面上有另一個輸入與一個必需的字段驗證程序,不讓我搜索,除非我用一些文本填充輸入。我該如何解決這個問題?

謝謝。

+0

將'ValidationGroup'值添加到您的提交按鈕和驗證程序中,以確定爲哪些按鈕調用哪些驗證。 –

+0

使用斷點進行調試,您是否看到代碼在「ButtonSearch_Click」中正確執行,然後在「SearchDatabase」中執行? –

+0

所以如果我添加一個斷點,然後進入代碼行,它們全都執行而沒有錯誤。但是,如果我直接在http:// localhost:2693/Service1.asmx?op = SearchDatabase中使用Web Service,並且查詢數據庫中的用戶評論我知道已評論我什麼都沒有 - > http://pastebin.com/7KAbzKb1,在這裏我應該得到的評論.. – user1389384

回答

2
string queryStr = "SELECT * FROM Comments WHERE User LIKE '%"+query+"%'"; 
+0

謝謝你是這個問題! – user1389384