【问题标题】:Why this line of code doesn't work?为什么这行代码不起作用?
【发布时间】:2013-03-02 20:07:53
【问题描述】:

有人可以告诉我为什么这行代码对我不起作用:

DataTable dt = new DataTable();
dt = (DataTable)this.dataGridView_Clients.DataSource;

我想将 DataSource 对象显式转换为 DataTable,但它给了我这个异常:

Volkswagen App.exe 中出现“System.InvalidCastException”类型的未处理异常

附加信息:无法将“System.Windows.Forms.BindingSource”类型的对象转换为“System.Data.DataTable”类型

【问题讨论】:

  • 数据源的原始类型是什么?如果不是DataTable,则不能直接投射。

标签: c# .net datatable


【解决方案1】:

因为 DataGridView DataSource 的类型是 BindingSource 而不是 DataTable(在您的情况下)。你可以试试这个:

dt = (DataTable)((BindingSource)this.dataGridView_Clients.DataSource).DataSource;

【讨论】:

    【解决方案2】:

    这不起作用,因为您的Datasource 不是DataTable 的子类型(也不是DataTable)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-18
      相关资源
      最近更新 更多