c# - SSIS 脚本任务 - 连接 ADO.NET 并填充数据表

标签 c# sql-server ssis etl script-task

我需要通过脚本任务连接到 SQL Server 数据库以填充 DataTable,我正在使用 ADO.Net 提供程序/连接。然而,在我的一生中,我遇到了各种各样的错误。例如,当使用 SqlAdapter 时,我收到无效对象错误,但是 SqlCommand 在 SSMS 中执行时没有错误:

SqlConnection conn;
ConnectionManager cm;
SqlCommand cmd;

cm = Dts.Connections["AdoNet"];
conn = (SqlConnection)cm.AcquireConnection(Dts.Transaction);

using (conn)
{   
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = conn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = queryString;
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = cmd;
    da.Fill(myDataTable);
}

最佳答案

试试下面的代码:

Using(SqlConnection conn = (SqlConnection)Dts.Connections["AdoNet"].AcquireConnection(Dts.Transaction)){

if (conn.State != ConnectionState.Open){
 conn.Open();}

SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = queryString;
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(myDataTable);
}

关于c# - SSIS 脚本任务 - 连接 ADO.NET 并填充数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41733531/

相关文章:

C# OpenXML 如何从 Cell 获取超链接

c# - 如何从 WebBrowser 控件获取 HTML

c# - 每个实体的通用存储库或特定存储库?

sql - OBJECT_ID 在 SQL Server 中有什么作用?

sql - 从 SQL Server 刷新数据后,Excel 表格式不重新应用

sql-server - 获取 'The data types nvarchar(max) and ntext are incompatible in the equal to operator.'

sql-server - 将 SQL Server 2000 升级到 2005 或 2008 - DTS 到 SSIS

c# - 有没有办法将 blob 从本地存储模拟器复制到远程 azure 存储?

sql-server-2008 - 如何在 SQL Server 中将变量中的全名拆分为名字和姓氏?

sql-server - 用于递增的 SQL Server 或 SSIS 代码