2017-04-11 61 views
0

我試圖讓一個搜索引擎與asp.net中的mysql鏈接,我希望用戶可以鍵入一個單詞/數字並按搜索,他會看到我的所有行數據庫包含該特定字搜索引擎。使用asp.net和從MySql檢索數據

在第一個加載頁我從我的數據庫(根據需要)獲取完整數據比例如我嘗試搜索「尊重」,然後單擊按鈕搜索(Zoeken)和什麼也沒有發生。

我已經嘗試添加點擊按鈕,看看後,我按下按鈕被執行的代碼和它的作品它改變之後發生改變的標籤。

這裏是代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 
using System.Configuration; 
using MySql.Data.MySqlClient; 

namespace KnowledgebaseKNO 
{ 
public partial class Know : System.Web.UI.Page 
{ 


    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      GridLaden(); 
     } 


    } 

    protected void GridLaden() 
    { 

     //start 
     if (!this.IsPostBack) 
     { 

      MySqlConnection con = new MySqlConnection("server = 127.0.0.1; user id = secret; persistsecurityinfo = True; database = knbase;pwd=secretinfo"); 
      con.Open(); 

      using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM tblafspraken")) 
      { 
       using (MySqlDataAdapter sda = new MySqlDataAdapter()) 
       { 
        cmd.Connection = con; 
        sda.SelectCommand = cmd; 
        using (DataTable dt = new DataTable()) 
        { 
         sda.Fill(dt); 
         GridView1.DataSource = dt; 
         GridView1.DataBind(); 
        } 
       } 

      } 
     } 
     //eind 


    } 


    protected void GridLadenSpecifiek() 
    { 
     string keywoord; 

     keywoord = txt_zoekwoord.Text; 


     if (!this.IsPostBack) 
     { 

      MySqlConnection con = new MySqlConnection("server = 127.0.0.1; user id = secret; persistsecurityinfo = True; database = knbase;pwd=secretinfo"); 
      con.Open(); 

      using (MySqlCommand cmd = new MySqlCommand("SELECT IDafspraak, NaamAfspraak,BeschrijvingAfspraak FROM tblafspraken where NaamAfspraak like '%" + keywoord + "%' or BeschrijvingAfspraak like '%" + keywoord + "%'")) 
      { 
       using (MySqlDataAdapter sda = new MySqlDataAdapter()) 
       { 
        cmd.Connection = con; 
        sda.SelectCommand = cmd; 
        using (DataTable dt = new DataTable()) 
        { 
         sda.Fill(dt); 
         GridView1.DataSource = dt; 
         GridView1.DataBind(); 
        } 
       } 

      } 
     } 

     lbl_test.Text = "Done!"; 



    } 


    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) 
    { 

    } 


    protected void btn_Zoeken_Click(object sender, EventArgs e) 
    { 
     if (!this.IsPostBack) 
     { 
      GridLadenSpecifiek(); 
     } 

    } 
} 
} 
+0

在btn事件和特定方法中刪除IsPostBack邏輯。僅在Page_Load事件中保留 – Steve

+0

並參數化您的查詢。現在,您的代碼很容易受到SQL注入的攻擊。 – VDWWD

+0

Steve:刪除IsPostBack很有幫助,但我的頁面仍未重新加載。 –

回答

0

由於您已經有了網格視圖中的數據。我認爲你可以使用javascript來顯示包含文本框中文字的行。我認爲這是更好的解決方案,因爲您在頁面加載時自帶所有數據。

現在來你的問題。刪除

if (!this.IsPostBack) 

代碼塊應該使您的代碼工作。

+0

非常感謝!這是我的問題的解決方案! –