将行添加到绑定的datagridview

时间:2012-02-15 19:25:37

标签: c# datagrid datagridview

我想将存储的CustomDataGridViewRow添加到绑定的DataGridView中。如下:

CustomDataGridViewRow rowTemplate = new CustomDataGridViewRow();
dataGridView1.RowTemplate = rowTemplate;

Datenbank.cmd = 
    new SqlCommand("[Terminauswertung_Bericht_Gesamt]", Datenbank.connection);
Datenbank.cmd.CommandType = CommandType.StoredProcedure;
Datenbank.cmd.Parameters.AddWithValue("@berichtsnr", 1);

SqlDataAdapter adapter = new SqlDataAdapter(Datenbank.cmd);
dataSet1.Tables.Clear();
adapter.Fill(dataSet1, "Table");
bs = new BindingSource();
bs.DataSource = dataSet1.Tables["Table"];
dataGridView1.DataSource = bs;

以为它是这样的:

dataSet1.Tables[0].Rows.Add(Cache.getRow(1));

public class cache
{
    Dictionary<int, CustomDataGridViewRow> _cache = 
        new Dictionary<int, CustomDataGridViewRow>();

    public CustomDataGridViewRow getRow(int index)
    {
        foreach (KeyValuePair<int, CustomDataGridViewRow> dic in _cache)
        {
            if (dic.Key == index)
                return (dic.Value);
        }
        return (new CustomDataGridViewRow());            
    }
}

但它只在第一个单元格中显示DataGridViewRow {Index = 1}。

1 个答案:

答案 0 :(得分:0)

解决了它

DataRow newRow =test.Tables[0].NewRow();


newRow.ItemArray = Cache.getRowValues(child);
 test.Tables[0].Rows.InsertAt(newRow, c.Index+1);

 public string[] getRowValues(int index)
        {
            List<string> temp = new List<string>();
            foreach (KeyValuePair<int, CustomDataGridViewRow> dic in _cache)
            {
                if (dic.Key == index)
                {
                    foreach (DataGridViewCell cell in dic.Value.Cells)
                        temp.Add(cell.Value.ToString());
                }
            }
            string[] result = temp.ToArray();

            return (result);
        }