2013-04-12 90 views
4

我想將行添加到datagridview。我嘗試了很多可能性,但它沒有出現任何問題。我認爲最好的解決方案是創建一個datatable,然後將其用作我的gridview的數據源。我使用winforms。請歡迎任何其他想法。這是我到目前爲止已經試過:如何將行添加到datagridview winforms?

public DataTable GetResultsTable() 
    { 
     DataTable table = new DataTable(); 
     table.Columns.Add("Name".ToString()); 
     table.Columns.Add("Color".ToString()); 
     DataRow dr; 
     dr = table.NewRow(); 
     dr["Name"] = "Mike"; 
     dr["Color "] = "blue"; 
     table.AcceptChanges(); 
     return table; 
    } 
public void gridview() 
{ 
    datagridview1.DataSource=null; 
    datagridview1.DataSource=table; 
} 
+1

我很少這樣做的WinForms,但如果你要指定一個'DataSource'不你還必須綁定它? – Tim

+2

我認爲winforms你不必綁定它。謝謝 – Viva

+1

目的是什麼?你定義在DataGridView添加行的列只是ABT像'gridview.Rows.Add(N)'爲n行或'gridview.Rows.Add()' – V4Vendetta

回答

10

我發現在你的代碼中有兩處錯誤:

  1. dr["Color "] = "blue";柱色彩應無空間dr["Color"] = "blue";
  2. 你忘了行添加到表

    table.Rows.Add(dr);

你可以試試這個

public DataTable GetResultsTable() 
{ 
    DataTable table = new DataTable(); 
    table.Columns.Add("Name".ToString()); 
    table.Columns.Add("Color".ToString()); 
    DataRow dr = table.NewRow(); 
    dr["Name"] = "Mike"; 
    dr["Color"] = "blue"; 
    table.Rows.Add(dr); 
    return table; 
} 
public void gridview() 
{   
    datagridview1.DataSource = GetResultsTable(); 
} 
3

有不同的方式,但在不同的條件。

至於我下面的代碼演示在字符串數組的情況下gridview.add方法:

datagridview1.Rows.Add({ val, val, val }); 

這取決於在你想要應用的背景和情況。

1
DataGridView dgv = new DataGridView(); 

DataTable table = new DataTable(); 

dgv.DataSource = table; 

table.Columns.Add("Name"); 
table.Columns.Add("Color"); 
table.Rows.Add("Mike", "blue"); 
table.Rows.Add("Pat", "yellow"); 

this.Controls.Add(dgv); 
+0

謝謝非常!但是,它並沒有出現在我的gridview上。我無法解釋爲什麼...... – Viva

2

試試這個方法:

dataGridView1.Columns.Add("Col1", "Name"); // "Col1" is the name of the column and "Name" is the column header text" 
dataGridView1.Columns.Add("Col2", "Age"); 
dataGridView1.Rows.Add("ABC", "25"); 

希望這有助於:)