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

Raf*_*ari 1 .net c# datatable

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

DataTable dt = new DataTable();
dt = (DataTable)this.dataGridView_Clients.DataSource;
Run Code Online (Sandbox Code Playgroud)

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

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

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

Abd*_*Haj 5

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

dt = (DataTable)((BindingSource)this.dataGridView_Clients.DataSource).DataSource;
Run Code Online (Sandbox Code Playgroud)