为什么这行代码不起作用?

时间:2013-03-02 20:07:53

标签: c# .net datatable

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

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

我想显式地将DataSource对象强制转换为DataTable,但它给了我这个例外:

  

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

     

其他信息:无法将类型为“System.Windows.Forms.BindingSource”的对象强制转换为“System.Data.DataTable”

2 个答案:

答案 0 :(得分:5)

因为DataGridView DataSource属于BindingSource而非DataTable(在您的情况下)。你可以试试这个:

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

答案 1 :(得分:0)

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