Выполнение SQL из компонента Script + SSIS - PullRequest
0 голосов
/ 17 февраля 2010

Я пытаюсь выполнить sql из компонента скрипта, но получаю сообщение об ошибке при попытке установить соединение SQL. Мой код ниже в компоненте сценария под PreExecute ()

base.PreExecute();
    variables = null;
    VariableDispenser.LockForWrite("User::TableName");
    VariableDispenser.LockForWrite("User::SqlConnectionString");
    VariableDispenser.GetVariables(out variables);
    tableName = variables[0].Value.ToString();
    sqlConnection = variables[1].Value.ToString();

    dt = new DataTable();

    //sqlConnection = Data Source=LOCALHOST;Initial Catalog=MergeTestDestination;Integrated Security=True;
    using (SqlConnection cnn = new SqlConnection(sqlConnection))
    {
        try
        {
            cnn.Open();
            MessageBox.Show("We are connected.....");
            cnn.Close();
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

Ошибка:

в System.Data.Common.DbConnectionOptions.GetKeyValuePair (строка String connectionString, Int32 currentPosition, буфер StringBuilder, логическое значение useOdbcRules, строка и имя ключа, строка и значение ключа) в System.Data.Common.DbConnectionOptions.ParseInternal (Hashtable parsetable, String connectionString, Boolean buildChain, Hashtable synonyms, Boolean firstKey) в System.Data.Common.DbConnectionOptions..ctor (String connectionString, синонимы хеш-таблицы, логическое использование useOdbcRules) в System.Data.SqlClient.SqlConnectionString..ctor (String connectionString) в System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions (String connectionString, DbConnectionOptions previous) в System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup (String connectionString, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions & userConnectionOptions) в System.Data.SqlClient.SqlConnection.ConnectionString_Set (строковое значение) в System.Data.SqlClient.SqlConnection.set_ConnectionString (строковое значение) в System.Data.SqlClient.SqlConnection..ctor (String connectionString) в ScriptMain.PreExecute () в Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute ()

что я делаю не так? Любая помощь?

Спасибо

1 Ответ

0 голосов
/ 17 февраля 2010

Поставьте следующий код перед конструктором соединения Debug.Assert (string.IsNullOrEmpty (SqlConnection)!)

...