2016-05-31 4 views
0

데이터베이스를 사용하지 않고 datagridview에 데이터를 표시하려고합니다. 내 UI에는 값을 삽입 한 3 개의 필드가 있으며 프로그램을 실행할 때 데이터 그리드보기에 표시하려고합니다. 오류를주지 않거나 DataGridview에 값을 표시하지 않습니다.데이터베이스를 사용하지 않고 DataGridview에 데이터를 표시하는 방법

Picture

private void Submit_Click(object sender, EventArgs e) 
    { 
     DataRow dr = dt.NewRow(); 
     dr[0] = txtBox1.Text; 
     dr[1] = txtBox2.Text; 
     dr[2] = txtBox3.Text; 
     dataGridView1.DataSource = dt; 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     dt = new DataTable(); 
     DataColumn dc1 = new DataColumn("Name"); 
     DataColumn dc2 = new DataColumn("Email"); 
     DataColumn dc3 = new DataColumn("ConatctNumber"); 
     dt.Columns.Add(dc1); 
     dt.Columns.Add(dc2); 
     dt.Columns.Add(dc3); 
     dt.Rows.Add(dc1); 
     DataRow dr = dt.NewRow(); 
     dataGridView1.DataSource = dt; 
    } 

답변

2
DataTable dt = new DataTable(); 
    private void Form1_Load(object sender, EventArgs e) 
     {  
     dt.Columns.Add ("Name"); 
     dt.Columns.Add ("Email"); 
     dt.Columns.Add ("ConatctNumber");   
     // dt.Rows.Add(dc1); dc1 is a column not a row >>> 
     // DataRow dr = dt.NewRow(); not necessary 
     dataGridView1.DataSource = dt; 
     } 
    private void Submit_Click(object sender, EventArgs e) 
     { 
      DataRow dr = dt.NewRow(); 
      dr[0] = txtBox1.Text; 
      dr[1] = txtBox2.Text; 
      dr[2] = txtBox3.Text; 
      dt.rows.add(dr); //You forgot to add new row in your datatable 
      // dataGridView1.DataSource = dt; is already definedin loadForm 
     } 
+0

'dt'는 범위 때문에 접근 할 수 없습니다. –

+0

@MAciejLos 정정 해 주셔서 감사합니다 –

+0

안녕하세요 덕분에 지금은 잘 작동합니다. –

0

당신은 거의 다,하지만 당신은 DataTable 새로운 행을 추가하기 만하면됩니다 : DataRow에 대한 생성자가 없음을

DataRow dr = dt.NewRow(); 
    dr[0] = txtBox1.Text; 
    dr[1] = txtBox2.Text; 
    dr[2] = txtBox3.Text; 
    dt.Rows.Add(dr);    // <<< ==== 
    dataGridView1.DataSource = dt; 

참고하지만, DataTable.NewRow() 호출은 새 행의 열에 대해 템플릿으로 테이블 레이아웃을 사용합니다. 실제로 테이블에 추가하지는 않습니다.

+0

변수의 범위 때문에 'dt'에 액세스 할 수 없습니다. –

+2

클래스 수준의 변수 여야합니다. 그렇지 않으면 OP 코드가 컴파일되지 않습니다. (그것은 데이터 소스 등으로 재검토 될 수 있지만 이것은별로 의미가 없습니다 ..) – TaW

+0

OP가 제공 한 코드를 살펴보십시오. 'dt' 변수가 선언 된 곳? –

관련 문제