2013-02-06 4 views
0
protected void Page_Load(object sender, EventArgs e) 
{ 
    using(SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS; database=employee; integrated security = SSPI")) 
    { 
     SqlCommand cmd = new SqlCommand("select * from emp",con); 
     con.Open(); 
     SqlDataReader sdr = cmd.ExecuteReader(); 
     DataTable dt = new DataTable(); 
     dt.Columns.Add("ID"); 
     dt.Columns.Add("Name"); 
     dt.Columns.Add("Option"); 
     while (sdr.Read()) 
     { 
      DataRow dr = dt.NewRow(); 
      dr["ID"] = sdr["uid"]; 
      dr["Name"] = sdr["uname"]; 
      dr["Option"] = addrbl(); 
      dt.Rows.Add(dr); 


     } 
     GridView1.DataSource = dt; 
     GridView1.DataBind(); 

    } 
} 

private object addrbl() 
{ 
    Panel p1 = new Panel(); 

    RadioButtonList rl1 = new RadioButtonList(); 
    rl1.Items.Add(new ListItem("yes","1")); 
    rl1.Items.Add(new ListItem("no","0")); 
    return(p1.Controls.Add(rl1)); 
} 
+1

관련없는 특정 질문을 던지기 만하면됩니다. 많은 코드를 간단한 ['dt.Load (sdr);'] (http://msdn.microsoft.com/en-us/library/system.data.datatable.load .aspx) 더 나은 점은 중간 단계로 데이터 테이블을 만들 필요없이 DataReader에 직접 바인딩 할 수 있다는 것입니다. –

+0

또한 질문에 몇 가지 특수성을 추가하십시오. 예를 들어,이 예외가 발생한 행. – BinaryTox1n

답변

0

return 문에서 void 메서드를 분리하십시오.

p1.Controls.Add (r11)); 반환 값이 없으므로 return 문에서 인수로 사용할 수 없습니다.

이에 addrbl (에서 return 문을) 변경

:

p1.Controls.Add(rl1); 
return p1; 

을 또한, 실제 개체 유형을 반환 입력 개체의뿐만 아니라 객체해야 다음에

private Panel addrbl() {..} 
관련 문제