2013-08-07 3 views
0

안녕하세요 선생님 저는 두 개의 확인란을 선택한 경우 확인란 확인란을 사용하여 데이터를 검색하고 싶습니다.이 두 확인란의 데이터를 얻으려는 경우이 코드는이 코드가 오직 하나만 제공합니다. 한 번에 데이터. 이 유형의 쿼리에 대한 데모 코드를 알려주십시오.전자 상거래 웹 사이트의 확인란 목록을 사용하여 데이터베이스에서 데이터 검색

개인 무효 checkboxlistbind() 당신은 당신의 checkboxlist을 통해 반복하고 각 항목에 대해 선택한 값을 테스트하고 각 옵션에 포함 된 문자열을 구축 할 필요가 {

SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\FlagBits\\Documents\\Visual Studio 2010\\WebSites\\checkboxlist\\App_Data\\Database.mdf;Integrated Security=True;User Instance=True"); 
    con.Open(); 
    string query = "select * from student where id='" + CheckBox1.Text + "'"; 
    SqlCommand cmd = new SqlCommand(query, con); 
    SqlDataReader dr; 
    dr = cmd.ExecuteReader(); 
    GridView1.DataSource = dr; 
    GridView1.DataBind(); 



} 
private void checkboxlistbind2() 
{ 

    SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\FlagBits\\Documents\\Visual Studio 2010\\WebSites\\checkboxlist\\App_Data\\Database.mdf;Integrated Security=True;User Instance=True"); 
    con.Open(); 
    string query = "select * from student where id='" + CheckBox2.Text + "'"; 
    SqlCommand cmd = new SqlCommand(query, con); 
    SqlDataReader dr; 
    dr = cmd.ExecuteReader(); 
    GridView1.DataSource = dr; 
    GridView1.DataBind(); 

} 


protected void CheckBox1_CheckedChanged(object sender, EventArgs e) 
{ 



    if (CheckBox1.Checked == true) 
    { 
     checkboxlistbind(); 
    } 

} 
protected void CheckBox2_CheckedChanged(object sender, EventArgs e) 
{ 
    if (CheckBox2.Checked == true) 
    { 
     checkboxlistbind(); 
     checkboxlistbind2(); 
    } 
+0

해당 코드는 SQL 삽입에 취약합니다. SQL로 사용자 입력을 구성하지 마십시오. –

답변

0

.

string queryparam = ''; 
     for (int i=0; i<checkboxlist1.Items.Count; i++) { 
     if (checkboxlist1.Items[i].Selected) 
      { queryparam += (queryparam.Length = 0) ? "id = " + checkboxlist1.Items[i].Text : " or id = " checkboxlist1.Items[i].Text } 
     } 

이렇게하면 시작할 생각이들 것입니다.

관련 문제