У меня есть небольшой фрагмент кода, который я пытаюсь запустить, в котором я сначала проверяю, существует ли значение, а затем обновляю свою базу данных, если его нет. Моя проблема в том, что я могу выполнить один запрос или другой, но не оба сразу, потому что в нем говорится, что база данных открыта и к ней нельзя получить доступ. Я точно знаю, что могу писать в базу. Он не защищен от чтения, находится там, где я не могу получить к нему доступ et c. Процедура запускается, если я просто пытаюсь обновить, а не проверять. Проверка определенно не приводит к записи. Я пробовал отдельные процедуры, используя совершенно разные переменные для соединения. Я в тупике. Я пробовал закрывать, использовать, утилизировать, но мне нужен кто-то более умный, чем я, чтобы посоветовать мне, что я делаю неправильно ...
For Each strfile As String In flist
Dim pth As String = Path.GetDirectoryName(strfile)
Dim objReader As New System.IO.StreamReader(strfile)
Dim dVal As String = String.Empty
TextLine = objReader.ReadLine()
SplitLine = Split(TextLine, ",")
dVal = SplitLine(1)
Using Dcon As New OleDbConnection
Dcon.ConnectionString = dbProvider
Dcon.Open()
Dim q1 As String = "SELECT Shares.[_Date] FROM Shares WHERE (((Shares.[_Date])=" & dVal & "))"
Dim comd As OleDbCommand = New OleDbCommand(q1, Dcon)
comd.ExecuteReader()
Dim q2 As String = "INSERT INTO Shares (Code, _Date, _Open, _High, _Low, _Close, _Volume) " &
"SELECT F1, F2, F3, F4, F5, F6, F7 FROM [Text;HDR=NO;DATABASE=" & pth & "].[" & Path.GetFileName(strfile) & "];"
Dim cmd As OleDbCommand = New OleDbCommand(q2, Dcon)
cmd.ExecuteNonQuery()
Dcon.Close()
End Using
Next
Я пробовал отдельные процедуры, я пробовал открывать, закрытие, а затем повторное открытие. Я пробовал одно соединение, пробовал два. Кто-нибудь знает, что я делаю не так, и почему он постоянно говорит мне, что база данных открыта исключительно и почему не позволяет мне писать в нее?
Заранее спасибо тем, кто помогает.