Невозможно подключиться к базе данных SQL Server из VB.NET

Я использую Visual Studio 2022 (VB.Net) и SQL Server 2022 Express. Я не программист; Мне просто нравится учиться программировать и пытаться учиться.

У меня есть программа, и я пытаюсь получить доступ к данным в созданной мной таблице, но когда я пытаюсь подключить представление DataGrid к таблице, там ничего нет. Смотрите скриншоты.

Если бы кто-нибудь мог мне подсказать, я был бы очень признателен.

Кевин

Изображение совершенно ненужно. Любой, кто использует этот сайт и имеет хоть какое-то представление о том, что такое DataGrid, поймет, что означает «там ничего нет», без графической демонстрации. Изображения следует использовать только в случае крайней необходимости, чтобы продемонстрировать проблему, чего в данном случае явно нет. Пожалуйста, смотрите Пожалуйста, не загружайте изображения кода/данных/ошибок. список причин НЕ использовать изображения.

Ken White 16.08.2024 05:15

Кроме того, не предоставляя никакого кода, невозможно объяснить, почему вы не получаете никаких данных. Это может быть проблема с используемым вами SQL, проблема с тем, как вы пытаетесь подключиться к DataGrid, или другая проблема, ни одну из которых нельзя вывести, глядя только на бесполезное изображение. См. Как задать вопрос и минимальный воспроизводимый пример , а затем отредактируйте свое сообщение, предоставив некоторые полезные подробности, чтобы мы могли попытаться помочь.

Ken White 16.08.2024 05:17

Вы не заполняете DataGridView или любые другие элементы управления непосредственно из базы данных. Вы используете некоторую технологию доступа к данным для извлечения данных в какой-то список, и этот список является источником данных для сетки. Сначала вам следует изучить технологии доступа к данным в VB и WinForms. Вы можете использовать ванильный ADO.NET, как указано в первом комментарии выше, или вы можете создать типизированный DataSet, или вы можете использовать Entity Framework, или вы можете использовать какой-либо другой ORM. Выбор за вами. Если у вас есть такой источник данных, его можно использовать для заполнения вашей сетки.

jmcilhinney 16.08.2024 05:40

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

jmcilhinney 16.08.2024 05:41
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
74
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

SQL-сервер

Imports System.Data.SqlClient

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Using connection As New SqlConnection(
            "Server=localhost\SQLEXPRESS;" &
            "Database=master;" &
            "Trusted_Connection=True;")

            Dim adapter As New SqlDataAdapter("select * from spt_values", connection)
            Dim table As New DataTable
            adapter.Fill(table)
            DataGridView1.DataSource = table

        End Using

    End Sub
End Class

MySQL

Imports MySql.Data.MySqlClient

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Using connection As New MySqlConnection(
            "server=localhost;" &
            "port=3306;" &
            "database=sakila;" &
            "user=root;" &
            "password=********;")

            Dim adapter As New MySqlDataAdapter("select * from city", connection)
            Dim table As New DataTable
            adapter.Fill(table)
            DataGridView1.DataSource = table

        End Using

    End Sub
End Class

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

Kevin 16.08.2024 07:48

@Кевин, для SQL Server будет примерно то же самое. Названия классов немного другие: SqlConnection вместо MySqlConnection. Я просто не смог опубликовать непроверенный код.

Konstantin Makarov 16.08.2024 07:58

@KonstantinMakarov Вам не нужно вызывать Connection.Open() при использовании адаптера.Fill(ds)

F0r3v3r-A-N00b 16.08.2024 09:32

В дополнение к предыдущему комментарию Fill и Update при необходимости откроют соединение и оставят его в том же состоянии, в котором оно было изначально. Это означает, что любому отдельному вызову Fill или Update не должен предшествовать вызов Open при соединении. Однако если вы совершаете несколько вызовов, вам следует вызвать Open и Close самостоятельно, иначе соединение будет закрыто и снова открыто между вызовами Fill или Update.

jmcilhinney 16.08.2024 10:30

Я установил «SQL Server 2022 Express Edition» и протестировал.

Konstantin Makarov 16.08.2024 11:00

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

Kevin 17.08.2024 01:14

Теперь я понял, спасибо всем. Еще один вопрос: если у меня есть текстовое поле, можно ли в нем отображать данные? то есть UserId, FirstName и Lastname.

Kevin 17.08.2024 03:47

@Кевин, во-первых, если этот ответ решил вашу проблему, примите его, нажав галочку. Во-вторых, не задавайте «еще один вопрос» в комментарии к ответу на другой вопрос. Это сайт вопросов и ответов, а не форум. Если у вас есть отдельный вопрос, задайте новый вопрос, и кто-нибудь сможет ответить на него другим ответом. Если вы считаете, что это часть одного и того же вопроса, вам следует изменить этот вопрос e4ed, но в данном случае это неуместно.

jmcilhinney 17.08.2024 05:18

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