Nano Hash - криптовалюты, майнинг, программирование

DataGridView остается пустым, даже если запрос SQL правильный

Итак, мне просто нужно заполнить DataGridView WinForm результатом запроса SQL, который я попробовал в MySQL Workbench и отлично работает.

Делаю это не первый раз именно в этой программе и все остальные работали нормально. Однако, что бы я ни делал, DataGridView остается пустым.

Вот мой код:

Dim BindingName As New BindingSource, ProdSet As New DataTable

    Private Sub SelectAllFacture()

        ClassConfig.Connexion.Open()

        ProdSet.Clear()

        Dim Requete As String
        Requete = "SELECT * FROM Product"

        Try
            Dim Cmd As New MySqlCommand
            With Cmd
                .Connection = ClassConfig.Connexion
                .CommandText = Requete
            End With

            Dim Adpt As New MySqlDataAdapter(Cmd)
            Adpt.Fill(ProdSet)
        Catch ex As Exception
            Autorisations.ErrorCheck(ex)
        End Try

        ClassConfig.Connexion.Close()

        BindingName.DataSource = ProdSet
        DataGridView.DataSource = BindingName

    End Sub

Чтобы указать, что не показано:

  • DataGridView — это… ну, DataGridView

  • Autorisations.ErrorCheck(ex) вызывает Sub из другого класса, который открывает MsgBox при ошибке (это не так).

  • ClassConfig.Connexion — это просто соединение, хранящееся в другом классе.

14.06.2019

  • Это проблема отладки. Поместите отладочную остановку в строку BindingName.DataSource = ProdSet, когда она дойдет до нее, проверьте свою таблицу с помощью инструментов отладки. Если он пуст, возможно, вы подключаетесь не к той базе данных. 14.06.2019
  • Хорошо, это действительно странно... Потому что у меня есть данные в таблице. 14.06.2019
  • Опубликованный код работает, поэтому я не могу воссоздать проблему. Ваша сетка действительно называется DataGridView? Обычно за ним стоит номер и т.д. 14.06.2019
  • Проблема была в названии источника привязки, я переименовал свой (это было действительно BindingFact) в BindingName и это как-то сработало? Я мог бы использовать BindingFact где-то еще в программе, это вполне возможно. 14.06.2019

Ответы:


1

Вместо заполнения набора данных (prodset) сделайте его доступным для данных

Dim prdtable as new DataTable

тогда

Adpt.Fill(prdtable)
BindingName.DataSource = prdtable

Также убедитесь, что вы уже добавили правильные столбцы в DataGridView или установили:

dataGridView.AutoGenerateColumns = true
14.06.2019
  • Я упомянул в другом комментарии, что это абсолютно правильно, и поэтому я сделал это. Однако все равно не работает... 14.06.2019
  • Отредактировано с новым предложением - Установите AutoGenerateColumns = true 14.06.2019
  • Это все еще не работает ... Я пытаюсь выяснить, не глупая ли это ошибка, но остановка показывает, что она срабатывает, однако я все еще не получаю результата, даже столбцы 14.06.2019
  • При отладке убедитесь, что таблица содержит какие-либо данные. После того как вы установили источник привязки, также проверьте содержимое bindingsource.datasource, чтобы убедиться, что действительно есть что отображать. Если источник данных содержит строки, убедитесь, что datagridview.columns также существует и содержит то, что вы ожидаете. 14.06.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..