2016-05-31 12 views
0

Ich möchte Daten in Datagridview ohne Datenbank anzeigen. In meiner Benutzeroberfläche gibt es 3 Felder, in denen ich Werte eingefügt habe und sie in der Datenrasteransicht anzeigen möchte, wenn ich das Programm ausführe, gibt es keinen Fehler noch irgendwelche Werte in datagridview zeigend.Wie Daten in Datagridview ohne Verwendung der Datenbank angezeigt werden

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; 
    } 

Antwort

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' ist aufgrund seines Umfangs nicht zugänglich. –

+0

@MAciejLos danke korrigiert –

+0

Hallo danke für die Hilfe, es funktioniert jetzt –

0

Sie sind fast da, aber Sie tun müssen, ist die neue Reihe zum DataTable hinzu:

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

Beachten Sie, dass es keinen Konstruktor für DataRow ist aber Der Aufruf DataTable.NewRow() verwendet das Tabellenlayout nur als Vorlage für die Spalten in der neuen Zeile. Es fügt es nicht wirklich zur Tabelle hinzu.

+0

'dt' ist wegen des Umfangs der Variablen nicht zugänglich. –

+2

Unsinn. Es muss eine Variable auf Klassenebene sein, sonst würde der OP-Code nicht kompiliert. (Es könnte vie DataSource etc. nachgefolgt werden, aber das macht nicht viel Sinn ..) – TaW

+0

Werfen Sie einen Blick auf Code von OP zur Verfügung gestellt. Wo wird eine 'dt'-Variable deklariert? –

Verwandte Themen