2017-04-11 25 views
0

asp.netでmysqlとリンクしている検索エンジンを作成しようとしています。ユーザーが単語/数字を入力して検索を押して、その特定の単語を含むデータベース検索エンジン。 asp.netを使用してMySqlからデータを取得する

最初の読み込みページで私はデータベースから完全なデータを取得しています(必要に応じて)exmpleより "尊敬"を検索してボタン検索(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

ありがとうございました!それが私の問題の解決策でした! –

関連する問題