类型转换问题

silviowk 2003-10-15 12:04:56
有如下代码:
DataTable DTdata = new DataTable();
DTdata = this.dataGrid1.DataSource;
出现问题:无法将类型"object"隐型转换为"System.Data.DataTable"
请问这种类型的转换函数是什么?
...全文
36 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sumtec 2003-10-15
  • 打赏
  • 举报
回复
DTdata = (DataTable) this.dataGrid1.DataSource;

你问错地方了,这里是VB.NET,差点就被你误导,要写CType给你了。
silviowk 2003-10-15
  • 打赏
  • 举报
回复
这个页面我打不开
我跟踪到typeof(Form1.dataGrid1.DataSource)为DataView
但DataView不能用CType转换为DataTable
应该如何做呢?
sumtec 2003-10-15
  • 打赏
  • 举报
回复
正确点讲应该看下面这个:

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemWindowsFormsDataGridClassDataSourceTopic.htm

备注
在运行时使用 SetDataBinding 方法来设置 DataSource 和 DataMember 属性。

下列数据源有效:

DataTable
DataView
DataSet
DataViewManager
任何实现 IListSource 接口的组件
任何实现 IList 接口的组件
sumtec 2003-10-15
  • 打赏
  • 举报
回复
写漏了……

VB:
If TypeOf ... Is DataSet Then
sumtec 2003-10-15
  • 打赏
  • 举报
回复
呵呵,原因是DataSource除了可以是DataTable之外,还可以是DataView以及DataSet,而DataTable、DataView和DataSet三者之间没有任何继承关系,当然不能够这项强制转换啦!你要首先判断一下是DataTable还是DataView还是DataSet!

C#:
if (typeof(...) == typeof(dataset))

VB:
if ... is dataset
silviowk 2003-10-15
  • 打赏
  • 举报
回复
我照着试了,系统出错提示:
未处理的"System.InvaildCastException"类型的异常出现在Test.exe中
其它信息:指定的转换无效
cmsoft 2003-10-15
  • 打赏
  • 举报
回复
C#
using System.Data;

DataTable DTdata = (DataTable) this.dataGrid1.DataSource;


vb.net
Dim DTdata as DataTable=Ctype(dataGrid1.DataSource,DataTable)
cgxf 2003-10-15
  • 打赏
  • 举报
回复
DTdata = ctype(this.dataGrid1.DataSource,DataTable)
silviowk 2003-10-15
  • 打赏
  • 举报
回复
另外,在VB.NET中又如何用呢
silviowk 2003-10-15
  • 打赏
  • 举报
回复
我试过了,他提示找不到类型或命名空间名称"DataTable"

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧