Для цикла 'Вставить в' SQL-оператор не работает в C # - PullRequest
0 голосов
/ 04 апреля 2019

В C # у меня есть метод для вставки массива строковых значений в sql db.Это выглядит примерно так:

void ProcessRow(string[] row)
{
    using (SqlConnection myConnection = new SqlConnection("myConnectionString"))
    {
        myConnection.Open();

        var myCommand = new SqlCommand("INSERT INTO mytable bla bla bla using content of row"), myConnection);
        myCommand.BeginExecuteNonQuery();
    }
}

Метод ProcessRow(string[] row) вызывается в цикле for для вставки нескольких разных строк.Однако, когда код выполняется, в mytable ничего не добавляется.Когда я заставляю ProcessRow(string[] row) немного подождать после каждой вставки, как показано

void ProcessRow(string[] row)
{
    using (SqlConnection myConnection = new SqlConnection("myConnectionString"))
    {
        myConnection.Open();

        var myCommand = new SqlCommand("INSERT INTO mytable bla bla bla using content of row"), myConnection);
        myCommand.BeginExecuteNonQuery();
        System.Threading.Thread.Sleep(100);
    }
}

, тогда все работает нормально, и мои строки добавляются в mytable.

Мой вопрос: что идет не так при первом подходе, без добавления сна (100)?Такое чувство, что существует какая-то проблема параллелизма, но я не понимаю, как это возможно, поскольку каждая вставка содержится в использовании () {}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...