Куда поместить строку OLE DB CommandTimeout - PullRequest
0 голосов
/ 22 октября 2018

У меня есть программа Visual Studio, которая обновляет таблицу SQL «Lab_Table», а затем программа ищет дублированные данные.Если существуют дубликаты с 5-дневным периодом, удаляются все дубликаты, кроме первой записи.При наличии данных для проверки на наличие дубликатов выдается сообщение об ошибке Query Timeout.SConnString имеет CommandTimeout = 90. Но запрос все еще выдает ошибки через 30 секунд.Я думаю, но не уверен, что CommandTimeOut = 90 должен быть ниже кода sSQL = "Удалить .... но не уверен, где он должен быть размещен или как. Весь код ниже. Спасибо большое ваванс.

    'Connection string for database
    sConnString = "Provider=SQLOLEDB;Server=RICKNDELLM2800\SQLEXPRESS;Database=ExactMAXSAM;User ID=sa;Password=password;CommandTimeout=90;"

' This is the Last Query to Delete Duplicates and fails after 30 seconds
        sSQL = "DELETE From Lab_Table Where (((TDate > DateAdd(Day, -5, GETDATE()) And ((Auto) Not In (Select Min(Auto) As MinID FROM Lab_Table WHERE (TDate > DATEADD(day, -10, GETDATE()))GROUP BY LotNumber))))  And (Qty)=Qty)"

        With objCommand
            .Connection = oOleDbConnection
            .CommandText = sSQL
            .CommandType = CommandType.Text
            .ExecuteNonQuery()
        End With
        'oOleDbConnection.Close() ' data is completed and time to close the ole connection
        'oOleDbConnection = Nothing
    Catch ex As Exception '  this Catch is required but the ex As Exception and MessageBox.Show(ex.ToString) below are only for error messages   
        MessageBox.Show(ex.ToString)
    End Try
    frmgathertickets.Close() 'to close delete subform
End Sub
...