如果用datagridview的datasource绑定dataset,我发现如果dataset中有数据,则datagridview会自动把数据带出来,如果dataset中没有数据,dataview也是空的,行列什么都没有,而且还不能自动添加新列
我的问题是,如果绑定dataset是个空的,怎么使datagridview能添加新数据?

解决方案 »

  1.   

    汗,绑定dataset是个空的,datagridview能添加新数据阿,难道我有人品问题?
    ——除非你的datagridview没有任何列信息,它当然不会出来新增数据,因为没有列的依存,它怎么出来呢??
    ==================================================================
    博客空间:http://blog.csdn.net/lovingkiss
    资源下载:http://download.csdn.net/user/lovingkiss
    Email:loving-kiss@163.com
    优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
    联系方式:Q64180940(请清楚注明业务还是技术咨询)  全天在线
    ==================================================================
      

  2.   

    要不你把dataset设置出来列信息,它也会出来新增的==================================================================
    博客空间:http://blog.csdn.net/lovingkiss
    资源下载:http://download.csdn.net/user/lovingkiss
    Email:loving-kiss@163.com
    优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
    联系方式:Q64180940(请清楚注明业务还是技术咨询)  全天在线
    ==================================================================
      

  3.   

    回楼上的比如我想绑定的表本身还没有数据,所以DATASET是个空的,但是这样的话,不手动设置列信息,就看不到绑定的表的列名,这是为什么呀?
      

  4.   

    回楼上的,没有这个属性吧,再说我的问题是,如果表里有数据就能把datagridview的列和列名显示出来,如果没有数据就连列名都显示不出来
      

  5.   

    正常情况下,DATASET的列可以手动添加,也可以预先设定,但是他和Grid的对应关系,必须有了之后,Grid才能产生列——然后你才能看到新增的行,否则,它怎么知道你需要什么列,列类型是什么呢?你说对吧?
    所以你在没有对空DATASET进行绑定前,是无法出现新增列的,如果你非要出现,先给Grid一个空列吧——虽然这没有任何意义To:
    datagridview哪里来的showheader
      

  6.   

    正常情况,DATASET的列都是在项目里面添加一个DATASET数据集,这样子把列设计好,绑定上;你不绑定数据——它就是个空的,但是列已经产生了;你现在这样子,还要产生列——你还不给它信息,当然不成;==================================================================
    博客空间:http://blog.csdn.net/lovingkiss
    资源下载:http://download.csdn.net/user/lovingkiss
    Email:loving-kiss@163.com
    优惠接单开发,收费带初学者,组件控件定制开发,成品源代码批发
    联系方式:Q64180940(请清楚注明业务还是技术咨询)  全天在线
    ==================================================================
      

  7.   

    .......................//填充完ds后试试下面看行不行
                  userTable = ds.Tables[0];                                
                                    
                    foreach (DataColumn dc in userTable.Columns)
                    {
                        DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();
                        column.DataPropertyName = dc.ColumnName;
                        column.HeaderText = dc.ColumnName;
                        column.Name = dc.ColumnName;                    
                        column.SortMode = DataGridViewColumnSortMode.Automatic;
                        column.ValueType = dc.DataType;                    
                        userDataGridView.Columns.Add(column);
                    }
      

  8.   

    userDataGridView 可能要改成你绑定的表格的名字
      

  9.   

    我感觉lz的意思是说dataset为空的时候绑定表格没有列信息,所以在界面上没法写入数据。这样就应该在空的时候,在界面上的表格中显示出列,只是表格中没有数据,然后让用户写入数据。不知道我理解的是不是对的。
      

  10.   

    顶,关注,比较想了解那个showHeader是怎么回事
    .PS: 楼主,你改了之后,填充完数据之后是会自动变回DATASET中的列的,那么填充,有什么意义了
      不过这边有个本方法,你关联一个空表,有列名,但没有值,马上你想要的结果就出来了
      

  11.   

    其实我的代码很简单
    string queryItem = "select * from tblItem where Estimate_Id="+ txtEstimateId.Text.ToString();
    DataSet dataSetItem = new DataSet();
    dataSetItem = ca.ReturnDataSet(queryItem);//返回一个DATASET
    dgvEstimate.DataSource = dataSetItem.Tables["tblItem"];//dgvEstimate->datagridview情况是如果查询条件能查询出来记录,OK,一切都没问题
    如果是查询条件不能查询出记录(比如本来就是新建),这样的话我的datagridview里面什么都没有,连列名都显示不出来,就是一个空的大方框
      

  12.   

    设置一个属性就行了
    dataGridView.AutoGenerateColumns = false;
    然后绑定数据源
      

  13.   

    to tepc2000,你的理解是对的,不过我就是不知道怎样 在空的时候,在界面上的表格中显示出列
    实在不行,我想了个笨办法,新加的时候手工添加列名,然后自己些SQL把数据写进去