2016-05-31 21 views
0

データベースを使用せずにデータグリッドビューにデータを表示したいとします。私のUIには、値を挿入した3つのフィールドがあり、データグリッドビューに表示するには、プログラムを実行するときにエラーが発生せず、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 dr = dt.NewRow(); 
    dr[0] = txtBox1.Text; 
    dr[1] = txtBox2.Text; 
    dr[2] = txtBox3.Text; 
    dt.Rows.Add(dr);    // <<< ==== 
    dataGridView1.DataSource = dt; 

DataRowにはコンストラクタがないことが、 DataTable.NewRow()呼び出しでは、新しい行の列に対してテーブルレイアウトがテンプレートとしてのみ使用されます。それは実際にテーブルに追加されません。

+0

変数のスコープのために 'dt'にアクセスできません。 –

+2

ナンセンス。これはクラスレベルの変数でなければなりません。さもなければOPコードはコンパイルされません。 (これはDataSourceなどで再調整することができますが、あまり意味がありません。) – TaW

+0

OPが提供するコードを見てください。 'dt'変数はどこで宣言されていますか? –

関連する問題