Riddhi15 Ответов: 3

Ошибка : не удается открыть больше никаких таблиц


привет,

Мы разработали одно многопоточное приложение в vb.net и мы используем Microsoft Access Jet engine 4.0. для базы данных, и когда я запускаю приложение, оно успешно выполняется, но через некоторое время выдает ошибку "не могу открыть больше таблицу." Мы много искали и обнаружили, что нам нужно закрыть все связи и всех читателей. и высвободить все ресурсы. мы тоже это сделали, но это не работает. так может ли кто-нибудь помочь нам??

С уважением,

Окон открывается вид на

3 Ответов

Рейтинг:
20

Not Active

Похоже, какие-то проблемы с синхронизацией потоков. Access не был разработан как многопользовательское многопоточное приложение. Я бы подумал о переходе на SQL Server Express. Он бесплатный, имеет лучшую производительность и возможности и при необходимости может быть легко обновлен до полной версии.


Simon Bang Terkildsen

разумный Совет

Espen Harlinn

Я согласен, мои 5

Рейтинг:
2

Espen Harlinn

Мои 5 - Вот почему я действительно не люблю доступ к профессиональному развитию

Simon Bang Terkildsen

Правда, хотя я уверен, что доступ имеет свое применение, я просто не знаю ни одного :D

Рейтинг:
2

Umar Balarabe Ubaz

Привет,
Действительно меняется с MS Accesss на mySql при использовании VB.Сеть решит эту проблему. Но я нашел другой способ избавиться от этой проблемы.

я создал процедуру под названием conState см. ниже

Public Sub conState()
        If con.State = ConnectionState.Closed Then
            con.Open()
        End If
End Sub

Поэтому перед любым обновлением / выбором или вставкой оператора я добавил

кон.рядом()
позвоните констеблю()


Нравится

For i = 0 to datagridview1.rowscount  - 1
con.close
call conState()
con.Close()
                        con.Open()

                        cmd = New OleDbCommand("insert into SBCCourses (lvid, stid, course , Score , sem) values ('" & Lid & "','" & Sid & "','" & scode & "','" & sgrade & "' , '2' )", con)
                      
                        cmd.ExecuteNonQuery()
                        cmd.Dispose()
Next

Я нахожу это действительно полезным


Richard Deeming

Этот вопрос был задан, на него был дан ответ и почти решен. ПЯТЬ ЛЕТ НАЗАД.

И ваше "решение" уязвимо для SQL-инъекция[^].