日期:2014-05-20  浏览次数:20688 次

使用DataSet和DataGridView时手动插入数据的问题!
问题:
手动的方式往DataSet中插入的数据,无法在DataGridView中显示出来
程序的目的只是想尝试通过手动控制DataSet数据源,来更新控件中的显示

目前使用方法:
1。添加DataSet和DataGridView控件到一个WinForm上
2。在WinForm的load事件中添加如下过程
//确定dataGridView1的数据源
dataGridView1.DataSource   =   this.dataSet1;

//创建DataSet的模式
DataTable   my_table   =   new   DataTable();

DataColumn   my_column;

my_column   =   new   DataColumn();
my_column.DataType   =   System.Type.GetType( "System.String ");
my_column.Caption   =   "name ";
my_column.ColumnName   =   "cname ";
my_table.Columns.Add(my_column);

my_column   =   new   DataColumn();
my_column.DataType   =   System.Type.GetType( "System.Int32 ");
my_column.Caption   =   "age ";
my_column.ColumnName   =   "cage ";
my_table.Columns.Add(my_column);


DataRow   my_row   =   my_table.NewRow();
my_row[ "cname "]   =   "abc ";
my_row[ "cage "]   =   24;
my_table.Rows.Add(my_row);
my_table.AcceptChanges();

dataSet1.Tables.Add(my_table);
dataSet1.AcceptChanges();

//创建DataGridView的模式
System.Windows.Forms.DataGridViewTextBoxColumn   Column1,Column2;
Column1   =   new   System.Windows.Forms.DataGridViewTextBoxColumn();
Column2   =   new   System.Windows.Forms.DataGridViewTextBoxColumn();

Column1.DataPropertyName   =   "cname ";
                Column1.HeaderText   =   "Column1 ";
                Column1.Name   =   "Column1 ";
                Column1.ReadOnly   =   true;
Column1.Visible   =   true;

Column1.DataPropertyName   =   "cage ";
                Column1.HeaderText   =   "Column1 ";
                Column1.Name   =   "Column1 ";
                Column1.ReadOnly   =   true;
Column1.Visible   =   true;

dataGridView1.AutoGenerateColumns   =   false;
dataGridView1.ColumnHeadersHeightSizeMode   =
System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridView1.Columns.AddRange(new   System.Windows.Forms.DataGridViewColumn[]   {
Column1,
Column2});

dataGridView1.Update();


为什么dataGridView1里边什么数据也没有显示呢?   dataSet1   里边不是有数据吗?
是不是更新机制的问题呢?我查了半天MSDN   ,也没有发现问题的所在!
劳烦各位,帮忙看一下,先谢过了~

------解决方案--------------------
我觉得,如果你把DATASET换成有数据的DataTable就好了

因为一个VIEW只能显示一个DataTable。
DATASET是多个DataTable在一起。

dataGridView1.DataSource = this.dataSet1.Table[0];