【问题标题】:get data from dataset从数据集中获取数据
【发布时间】:2012-10-11 11:55:39
【问题描述】:

我使用Add new data source 创建了数据集。然后我创建了BindingSource bs 并使用方法GetData(ShoppingMallDataSet 是一个新添加的数据集)用数据填充它

void GetData(){
    using(ShoppingMallDataSet smds = new ShoppingMallDataSet())
    {
         using (var conn = new SqlConnection(connection_string))
         {
              using (var adapter = new   ShoppingMallDataSetTableAdapters.TClientTableAdapter() { Connection = conn })
              {
                  adapter.Fill(smds.TClient);
                  bs.DataSource = smds.TClient;
              }
         }
    } 
}

我设置了datagrid数据源rgv.DataSource = bs的值,然后调用这个方法GetData()。在调试器中 bs.DataSource 不是 null 并且它有数据。但是gridview没有列,没有数据(但同时数据源不为空)

BindingSource bs = new BindingSource();
.....
rgv.DataSource = bs;
GetData();
....... // rgv doesn't have any data but datasource is not null and has the same value as bs  

是有问题还是获取数据的方式不正确?

【问题讨论】:

  • 如果您只是尝试设置数据网格的 ItemSource,请参见此处:stackoverflow.com/questions/5398441/…
  • 这是 wpf 但我需要 winforms
  • 确保网格视图的AutoGenerateColumns属性设置为true。
  • 尝试将DataMember属性设置为表名。

标签: c# winforms gridview dataset datasource


【解决方案1】:

BindingSource 有两个属性:

  • DataSource:您必须将数据集分配给此属性
  • DataMember:您必须为该属性分配数据集的表名

除了DataSource之外,您还必须设置DataMember

    bs.DataMember = "TClient";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-26
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    相关资源
    最近更新 更多