即使在手动填充后,DataGridview也会在其列中提供空值

时间:2012-09-14 14:25:34

标签: c# .net winforms datagridview null

我使用了DataGridview,它应该手动填充(没有指定数据源)。我想获得它的第一行内容(索引-0)。但它给了我空单元格值。

代码

DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add("Description");
dt.Columns.Add("Unit Price");
dt.Columns.Add("Quantity");
dt.Columns.Add("Tot");

dr = dt.NewRow();

dr[0] = dataGridViewA_General.Rows[0].Cells[1].Value; //these values are null
dr[1] = dataGridViewA_General.Rows[0].Cells[2].Value; //these values are null
dr[2] = dataGridViewA_General.Rows[0].Cells[3].Value; //these values are null
dr[3] = dataGridViewA_General.Rows[0].Cells[4].Value; //these values are null

dt.Rows.Add(dr);

提前致谢

更新

// dataGridViewA_General

this.dataGridViewA_General.ColumnHeadersHeightSizeMode =         System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridViewA_General.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column_A_item_code,
this.Column_A_description,
this.Column_A_qntity,
this.Column_A_unit_price,
this.Column_A_list_total});

// Column_A_description

this.Column_A_description.AutoSizeMode =  System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.Column_A_description.HeaderText = "Description";
this.Column_A_description.Name = "Column_A_description";

// Instantiate
private System.Windows.Forms.DataGridView dataGridViewA_General;
private System.Windows.Forms.DataGridViewTextBoxColumn Column_A_description;

(其余列也在同一时间定义。)

2 个答案:

答案 0 :(得分:3)

您必须将该行添加到DataTable。

dt.Rows.Add(dr);

NEWROW();只需创建一个空白行,您必须手动添加它。

此外,由于您没有在行中放置任何内容,因此不会返回任何内容。

答案 1 :(得分:0)

我做了一个逻辑错误,填写数据后代码没有以预期的方式执行。实际上上面的代码是正确的。谢谢大家的宝贵贡献。