2014-11-20 4 views
0

내 테이블 중 하나를 GridView에 바인딩하는 데 문제가 있습니다. 나는 모든 것을 시도했지만 아무 도움도주지 못했다. 검색 버튼이있어서 검색 결과를 보여주고 다른 테이블에 바인딩하는 DropDownList가 있습니다.Gridview를 바인딩하는 방법은 무엇입니까?

여기에 코드입니다 : 나는 거기에 내 C# 코드에 문제가하지만 난 그것을 식별 할 수없는임을 알게 버튼 을 클릭하면

SqlConnection my_cn = new SqlConnection("Data Source=NIMA-PC;Initial Catalog=PDFha;Integrated Security=True"); 
my_cn.Open(); 
SqlCommand cmd = new SqlCommand("SELECT Books.Name,Books.Subject,Books.PublisherName,Books.Summery FROM Books WHERE (Books.Subject= '" + subList.SelectedValue.ToString() + "') AND (Books.Name= '" + searchName.Text + "')", my_cn); 
SqlDataAdapter adapter = new SqlDataAdapter(); 
adapter.SelectCommand = cmd; 
adapter.Fill(ds); 
DataTable dt = ds.Tables[0]; 
SqlDataReader dr = cmd.ExecuteReader(); 
while (dr.Read()==true) 
{ 
    GridView1.DataSource = dt; 
} 
my_cn.Close(); 

아무런 변화가 없습니다. 모든 의견 감사합니다. 당신은 다시 DataReader를 호출하는 이유 외에도에서 나도 몰라, DataBind 방법을 누락 너무 그 코드를 제거한 - :

+2

GridView1.DataBind되어야한다 –

+0

@Shree는 그것을 시도했지만 제대로 작동하지 않았습니다. –

답변

2

이보십시오. 또한 SQL Injection을 방지하려면 매개 변수가있는 검색어를 사용하십시오. 뭔가 같은 : - cmd.Parameters.AddWithValue()

SqlConnection my_cn = new SqlConnection("Data Source=NIMA-PC;Initial Catalog=PDFha;Integrated Security=True"); 
my_cn.Open(); 
SqlCommand cmd = new SqlCommand("SELECT Books.Name,Books.Subject,Books.PublisherName,Books.Summery FROM Books WHERE (Books.Subject= '" + subList.SelectedValue.ToString() + "') AND (Books.Name= '" + searchName.Text + "')", my_cn); 
SqlDataAdapter adapter = new SqlDataAdapter(); 
adapter.SelectCommand = cmd; 
adapter.Fill(ds); 
DataTable dt = ds.Tables[0]; 
GridView1.DataSource = dt; 
GridView1.DataBind(); 
my_cn.Close(); 
+0

다시 시도했지만 내 gridview조차 보이지 않습니다 ... 마치 거기에없는 것 같은가요? –

+0

@NimaSharify - 코드를 디버깅하고'dt '가 채워지는 것을 보았습니까? –

+0

예 SQL 코드가 좋으며 쿼리가 3 개의 행을 반환합니다. 그것이 당신의 요구 사항이라면? ' –

0
while (dr.Read()==true) 
    { 
     GridView1.DataSource = dt; 
     GridView1.DataBind(); 

    } 
+0

그것을 시도했지만 내 gridview도 표시되지 않습니다 ... 그것은 심지어 거기에없는 것 같아요? –

+0

SQL 쿼리가 데이터를 반환합니까? DataTable에 행이 있습니까? – sdeep

0

당신은) (이

GridView1.DataBind을 놓친;

1

이것은) (보정 코드

SqlConnection my_cn = new SqlConnection("Data Source=NIMA-PC;Initial Catalog=PDFha;Integrated Security=True"); 
my_cn.Open(); 
SqlCommand cmd = new SqlCommand("SELECT Books.Name,Books.Subject,Books.PublisherName,Books.Summery FROM Books WHERE (Books.Subject= '" + subList.SelectedValue.ToString() + "') AND (Books.Name= '" + searchName.Text + "')", my_cn); 
SqlDataAdapter adapter = new SqlDataAdapter(); 
adapter.SelectCommand = cmd; 
adapter.Fill(ds); 
DataTable dt = ds.Tables[0]; 
//Modified start 
//You don't need SQLReader, While loop 
GridView1.DataSource = dt; 
GridView1.DataBind(); 
//Modified End 
my_cn.Close(); 
관련 문제