Выполнение запроса в VB.NET вызывает ошибку графического интерфейса

Всякий раз, когда моей программе требуется также запросить базу данных, это приведет к ошибкам графического интерфейса, таким как случайное изменение шрифтов формы, изменение размера самой формы, смешивание данных в сетке данных, и это повлияет на всю программу, а не только на форму, которая вызов функции запроса.

Я использую это соединение

 "Provider=Microsoft.ACE.OLEDB.12.0;"

 Public DBDA As OleDbDataAdapter
 Public DBDT As DataTable
 DBDT = New DataTable
 DBDA = New OleDbDataAdapter(DBCmd)
 RecordCount = DBDA.Fill(DBDT)

и вот моя функция Execute Query:

Public Sub ExecQuery(Query As String)
    'RESET QUERY STATS
    RecordCount = 0
    Exception = ""
    Try
        'OPEN A CONNECTION
        DBCon.Open()

        'CREATE DB COMMAND
        DbCmd = New OleDbCommand(Query, DBCon)

        'LOAD PARAMETERS INTO COMMAND
        Params.ForEach(Sub(Par) DbCmd.Parameters.Add(Par))

        'CLEAR PARAMETERS LIST
        Params.Clear()

        'EXECUTE COMMAND & FILL DATA
        DBDT = New DataTable
        DBDA = New OleDbDataAdapter(DbCmd)
        RecordCount = DBDA.Fill(DBDT)
    Catch ex As Exception
        Exception = ex.Message
    End Try

    'CLOSE CONNECTION
    If DBCon.State = ConnectionState.Open Then DBCon.Close()
End Sub

и пример того, как я запрашиваю из формы

Private QC As New QueryControl
Public Sub RefreshGrid()
    'RUN QUERY
    QC.ExecQuery("SELECT * FROM Database")
    If Not String.IsNullOrEmpty(QC.Exception) Then MsgBox(QC.Exception) : Exit Sub
    'POPULATE DATAGRID
    Datagridview1.DataSource = QC.DBDT
 End Sub

Я попытался запустить отладку программы, комментируя каждую строку по отдельности, и пришел к выводу, что функция ExecQuery () является причиной проблемы. Кто-нибудь встречал нечто подобное?

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
0
62
1

Ответы 1

У меня была проблема с изменением размера формы. Это был 32-битный провайдер Ace. Я скачал 64-битный провайдер Ace и установил его. В свойствах решения снимите флажок «Предпочитать 32-битный», и все должно быть в порядке.

Большое спасибо, я загрузил 64-битные версии и изменил целевой вывод с «All CPU» на «x64», а также мне пришлось изменить методы подключения, в проводнике сервера в расширенных свойствах я изменил службы Oledb с Default на Enable Все и после всего, что работало. Я также включил осведомленность о DPI, как указано в предыдущем посте, но я думаю, этого было недостаточно.

LaureLazard 01.05.2018 22:42

Это сводило меня с ума надолго. Я думаю, что это на форумах MS в разделе «Невероятная форма сжатия» :-)

Mary 01.05.2018 22:48

Другие вопросы по теме