【发布时间】:2015-08-16 11:04:32
【问题描述】:
提前,对不起我的英语。
我的问题是关于 ListObject 和 DataTable 与 C# for Excel。过去我经常使用 Excel VBA,我了解ListObject 的概念。我曾经使用 C#,尤其是在 ASP.NET 上下文中,我可以很容易地弄清楚 DataTable 对象的实用性。
就像我想的那样,DataTable 和 Listobject 可以通过做它们的用途来协同工作:
ListObject 将用作显示信息的一种方式(但也具有一些允许对数据进行一些花哨操作的功能)。
DataTable 他是一个提供完整操作的数据容器,其作用类似于观察者(如 DataGridView)可以观察以更新其数据的对象。
用这些行:
fooListObject.AutoSetDataBoundColumnHeaders = true;
fooListObject.SetDataBinding(fooDataTable);
可以通过(添加行、更新单元格等)使用 ListObject 和 DataTable 标题名称并利用 DataTable 的事件回调(在更改时执行 SQL),但似乎相反也是可能的。
在我的应用程序中,我有一个链接到 .dbml (LINQ to SQL) 对象的DataTable。我还为那个DataTable注册了一个DataRowChangeEventArgs事件。
我想知道调用ListObject 或DataTable 以使用最新的SQL 数据更新模型的最佳方法。我也想知道每个人应该怎么做。现在,如果我删除了我不应该在 Excel 视图中看到的数据库中的一行,我仍然会看到它。
你能告诉我更多关于ListObject和DataTable之间的交互吗?一些有用的方法?
【问题讨论】:
-
我已经能够弄清楚一些事情,但我不得不忘记 LINQ to SQL。我没有使用
System.Data.Linq.DataContext对象来填充我的DataTable,而是使用存储在SqlDataReader中的纯SQL 查询,例如myDataTable.Load(mySQLDataReader)。因此,我可以使用fooListObject.SetDataBinding(myDataTable);处理新数据,并大量使用DataRowChangeEventArgs事件。
标签: c# excel datatable listobject