【问题标题】:SSIS Script Task- Connecting the ADO.NET and populating DataTableSSIS 脚本任务 - 连接 ADO.NET 并填充 DataTable
【发布时间】:2017-01-19 04:02:24
【问题描述】:

我需要通过脚本任务连接到 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);
}

【问题讨论】:

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


    【解决方案1】:

    试试下面的代码:

    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);
    }
    

    【讨论】:

    • 我认为有一个错误:conn.Open 应该是conn.Open(),不是吗?
    猜你喜欢
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多