2012-03-13 7 views
-2

私はasp.net C#から始めました。ドロップダウンリストで指定された値に応じて医師を生成するタスクが与えられました。データベースにテーブルを取得して表示する

私には、(1)PROVINCE、(2)CITY、(3)SPECIALIZATION、および検索ボタンの3つのドロップダウンリストがあります。 ユーザーが3つのドロップダウンリストの値を選択し、検索ボタンを押すと、利用可能な医師を含む表が印刷されます。

私はキーが検索ボタンにあることを知っていますが、検索ボタンの下に何を置くべきか正確には分かりません。私を助けてくれますか?

は、ここに私のコードです:

 protected void Page_Load(object sender, EventArgs e) 
    { 
     System.Threading.Thread.Sleep(2000); 

     if (!IsPostBack) 
     { 
      string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString; 
      SqlConnection conn = new SqlConnection(constring); 
      DataTable dt = new DataTable("emed_province"); 

      using (conn) 
      { 
       conn.Open(); 
       SqlCommand comm = new SqlCommand("SELECT * FROM emed_province ORDER BY PROVINCE_NAME ASC", conn); 
       SqlDataAdapter adptr = new SqlDataAdapter(comm); 
       adptr.Fill(dt); 
      } 

      ddlProvince.DataSource = dt; 
      ddlProvince.DataTextField = "PROVINCE_NAME"; 
      ddlProvince.DataValueField = "PROVINCE_CODE"; 
      ddlProvince.DataBind(); 
     } 
    } 

    protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     System.Threading.Thread.Sleep(2000); 

     string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString; 
     SqlConnection conn = new SqlConnection(constring); 
     DataTable dt = new DataTable("emed_province"); 

     using (conn) 
     { 
      conn.Open(); 
      SqlCommand comm = new SqlCommand("SELECT * FROM emed_city WHERE PROVINCE_CODE [email protected]", conn); 
      comm.Parameters.AddWithValue("@pcode", ddlProvince.SelectedValue); 
      SqlDataAdapter adptr = new SqlDataAdapter(comm); 
      adptr.Fill(dt); 

      SqlParameter param = new SqlParameter(); 
      param.ParameterName = "@pcode"; 
      param.Value = ddlProvince; 

      comm.Parameters.Add(param); 
     } 
     ddlCity.DataSource = dt; 
     ddlCity.DataTextField = "CITY_NAME"; 
     ddlCity.DataValueField = "CITY_CODE"; 
     ddlCity.DataBind(); 
    } 

    protected void ddlCity_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     System.Threading.Thread.Sleep(2000); 

     string constring = ConfigurationManager.ConnectionStrings["AccreString"].ConnectionString; 
     SqlConnection conn = new SqlConnection(constring); 
     DataTable dt = new DataTable("emed_city"); 

     using (conn) 
     { 
      conn.Open(); 
      SqlCommand comm = new SqlCommand("select distinct emed_accredited_providers.SPECIALIZATION from emed_accredited_providers inner join emed_doctors_hospitals on emed_accredited_providers.DOCTOR_CODE = emed_doctors_hospitals.DOCTOR_CODE where CITY_CODE [email protected]", conn); 
      comm.Parameters.AddWithValue("@ccode", ddlCity.SelectedValue); 
      SqlDataAdapter adptr = new SqlDataAdapter(comm); 
      adptr.Fill(dt); 

      SqlParameter param = new SqlParameter(); 
      param.ParameterName = "@ccode"; 
      param.Value = ddlCity; 

      comm.Parameters.Add(param); 
     } 
     ddlSpec.DataSource = dt; 
     ddlSpec.DataTextField = "SPECIALIZATION"; 
     ddlSpec.DataValueField = "SPECIALIZATION"; 
     ddlSpec.DataBind(); 
    } 

    protected void btnDocs_Click(object sender, EventArgs e) 
    { 

    } 
} 
} 

答えて

0
  1. は、検索機能に選択された値を渡し、ドロップダウンリストから選択した値を取得します。 (あなたのロジックに依存します。つまり、ユーザーが1つのドロップダウンから値を選択した場合、2つのドロップダウンから検索クエリが異なる場合があります)。
  2. gridviewあなたはこの

    に似た何かを行うことができますバインドするDropDownList.SelectedIndex Property

    で見ても

(グリッドビュー)検索関数からの戻り値を取得し、あなたのテーブルにバインド
private void BindGrid() 
{ 

     var dt = new DataTable(); 
     var connection = new SqlConnection(YOUR CONNECTION); 

     try 
     { 
      connection.Open(); 
      var query = "YOUR SEARCH QUERY"; 
      var sqlCmd = new SqlCommand(query, connection); 
      var sqlDa = new SqlDataAdapter(sqlCmd); 
      sqlDa.Fill(dt); 

       if (dt.Rows.Count > 0) 
       { 
       GridView1.DataSource = dt; 
       GridView1.DataBind(); 
       } 
     } 
     catch (System.Data.SqlClient.SqlException ex) 
     { 
       // 
     } 
     finally 
     { 
      connection.Close(); 
     } 
} 
+0

ありがとう、私は論理を得た。バインディングとgridviewのサンプルコード行を私に教えてください。 – user1230147

+0

@ user1230147更新された回答を参照してください –

0
string query = string.Empty; 

if (ddlProvince.SelectedIndex != -1) 
       { 
        query = query + " and PROVINCE_CODE=" + ddlProvince.SelectedValue; 
       } 

       if (ddlCity.SelectedIndex != -1) 
       { 
        query = query + " and CITY_CODE=" + ddlProvince.SelectedValue; 
       } 

       if (ddlSpec.SelectedIndex != -1) 
       { 
        query = query + " and SPECIALIZATION=" + ddlProvince.SelectedValue; 
       } 


       string tQuery = "Select * from Doc"; 
       if (query.Length > 0) 
       { 
        query = query.Remove(0, 4); 
        tQuery = tQuery + query; 
       } 
       // Exeucate -- tQuery 

//テーブル名やフィールド名を変更します。

+0

ありがとう!ここで「クエリ」は正確に何ですか? – user1230147

+0

string query = string.Empty; –

+0

つまり、query = query .. "現在のコンテキストに名前 'query'が存在しません" – user1230147

関連する問題