日期:2014-05-18  浏览次数:21054 次

关于DataSource的问题 类型转化
最近在做一个组件中用到DataGirdView,用到它必然会用到它的DataSource属性,可是在这最简单的问题上,我却载跟头了。希望大家都来帮帮忙,小弟将感激不尽。

问题是这样的:
我希望将DataGirdView的DataSource转换成DataView类型,或者是DataSet类型,或者是DataTable类型。
我这样做
C# code
DataView dv = (DataView)this.dataGridView1.DataSource;

  或者是:
C# code
DataView dv=this.dataGridView1.DataSource as DataView;
 

结果都出错:“无法将类型为“System.Windows.Forms.BindingSource”的对象强制转换为类型“System.Data.DataView”“。

那么:怎么样将DataSource转化成我想要的类型呢?
希望大家帮帮解决一下,感激不尽啊。

------解决方案--------------------
你给DataSource属性设置什么东西,就用什么东西转回来。
------解决方案--------------------
帮顶,学习中。
------解决方案--------------------
DataSource是用来绑定数据源的,你能不能解释一下你要实现什么功能?可以把DT,或者DV帮顶为DGV的数据源,如下面
C# code

dgv.DataSource=dt;

------解决方案--------------------
DataView只是一个简单的数据视图,而DataSource可能是一个复杂的DataSet,你可以在DataTable做相关的操作来生成一个DataView,其实MSDN上讲的非常清楚。
------解决方案--------------------
结果都出错:“无法将类型为“System.Windows.Forms.BindingSource”的对象强制转换为类型“System.Data.DataView”“。

因为你绑到了BindingSource上,自然访问到的BindingSource

但是问题是BindingSource就没有DataSource属性了吗?

datagridview.datasouce-----绑定-------->BindingSource
BindingSource.DataSource-------绑定----->??这里绑定的东西就是你要滴
------解决方案--------------------
BindingSource 本身就可以筛选和排序啊,而且所见即所得,直接反映到DataGridView中去,何必这么麻烦?
------解决方案--------------------
up~~