Ming Zhi Zhang Ответов: 1

Справка с ошибкой "system.invalidoperationexception: executenonquery: свойство соединения не было инициализировано."


Я получаю эту ошибку в C#. Вот мой код

{

                        SqlConnection myADONETConnection = new SqlConnection();
                        myADONETConnection = (SqlConnection)
               (Dts.Connections["DBConn"].AcquireConnection(Dts.Transaction) as SqlConnection);
                       
                        //Writing Data of File Into Table
                        int counter = 0;
                        string line;
                      


                        System.IO.StreamReader SourceFile = new System.IO.StreamReader(fileName);
                        while ((line = SourceFile.ReadLine()) != null)
                        {
                            if (counter >= 0)
                            {
                                char[] removechar = {'0','1','2','3','4','5','6','7','8','9'};

                               string TableName = tempFile.TrimEnd(removechar).TrimEnd('_');

                                //MessageBox.Show("newTableName " + TableName);

                                string line2 = line.Replace("'", "");
                                string query = "Insert into dbo.STAGE_" + TableName + " Values ('" + line2.Replace(FileDelimiter, "','") + "')";
                                 //MessageBox.Show(query.ToString());

                                SqlCommand myCommand1 = new SqlCommand(query, myADONETConnection);
                                myCommand1.ExecuteNonQuery();
                            }

                            counter++;

                        }
                   
                        SourceFile.Close();
                    }


Что я уже пробовал:

Я не могу понять, в чем проблема. Этот код работает в другом проекте.

Sandeep Mewara

Когда вы отлаживаете, какое значение имеет <cod>myADONETConnection? (В строке: команда sqlcommand myCommand1 = новый sqlcommand, который(запрос, "соединениеadonet");)

1 Ответов

Рейтинг:
1

OriginalGriff

Скорее всего, то, что возвращается вашим вызовом AcquireConnection, не является SqlConnection, поэтому myADONETConnection устанавливается на null посредством as - гипс там не нужен.
Поэтому, когда вы устанавливаете свойство Connection, вы устанавливаете его в null, и система справедливо жалуется.
Пробой линии:

myADONETConnection = (SqlConnection)
               (Dts.Connections["DBConn"].AcquireConnection(Dts.Transaction) as SqlConnection);
в его биты:
var x1 = Dts.Connections["DBConn"];
var x2 = x1.AcquireConnection(Dts.Transaction);
myADONETConnection = x2 as SqlConnection);
И используйте отладчик, чтобы точно посмотреть, что происходит.

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!