【问题标题】:Put data directly into DataTable or dot net object?将数据直接放入 DataTable 或 dot net 对象中?
【发布时间】:2014-01-02 11:59:28
【问题描述】:
目前,我只是创建一个 OLEDB 连接,对其运行查询并将结果集加载到 SSIS 对象中。我不知道这个对象到底是什么。之后,我将这个对象加载到我的 C# 代码中的 DataTable 中。除了做这一切,有没有办法直接将此结果集加载到数据表中?另外,有没有办法从对象本身获取结果集中的行数?现在,我将其加载到数据表中,然后将行数作为 myDataTable.Rows.Count;
谢谢。
【问题讨论】:
标签:
c#
sql-server
sql-server-2005
ssis
.net-3.5
【解决方案1】:
解决方案是使用 ADO.NET 连接而不是 OLEDB。如果您使用 ADO.NET 连接,您将获得 ADO.NET DataSet 对象。 DataSet 是 DataTable 的集合。
DataSet 教程的一些链接 -
http://www.dotnetperls.com/dataset
斯科特·米切尔的 tut -
http://msdn.microsoft.com/en-us/library/aa581776.aspx
此外,如果您想使用 C# 获取 OLEDB 结果集(实际上是 ADODB 记录集)中的行数,请使用此 -
using ADODB;
ADODB.Recordset resultSet = (ADODB.Recordset)Dts.Variables["MyResultSet"].Value;
int rows = resultSet.RecordCount;
不要为 get 添加对 ADODB 的引用,如下所示 –
解决方案资源管理器 > 参考 > COM 选项卡 > Microsoft ActiveX 数据对象 2.X 库 > 确定。
文件菜单 > 全部保存