Создание базы данных и добавление таблиц в приложениях платформа .NET Framework с помощью Visual Studio
Область применения:Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
Наборы данных и связанные классы являются устаревшими технологиями платформа .NET Framework с начала 2000-х годов, которые позволяют приложениям работать с данными в памяти во время отключения приложений от базы данных. Они особенно полезны для приложений, которые позволяют пользователям изменять данные и сохранять изменения обратно в базу данных. Хотя наборы данных оказались очень успешными, мы рекомендуем новым приложениям .NET использовать Entity Framework Core. Entity Framework предоставляет более естественный способ работы с табличными данными в виде объектных моделей, и он имеет более простой интерфейс программирования.
Visual Studio можно использовать для создания и обновления локального файла базы данных в SQL Server Express LocalDB. Вы также можете создать базу данных, выполнив инструкции Transact-SQL в окне инструментов SQL Server обозреватель объектов в Visual Studio. В этом разделе описано, как создать .mdf файл и добавить таблицы и ключи с помощью конструктора таблиц.
Необходимые компоненты
Чтобы выполнить это пошаговое руководство, вам потребуется разработка классических приложений .NET и хранение и обработка рабочих нагрузок, установленных в Visual Studio. Чтобы установить их, откройте Visual Studio Installer и нажмите кнопку «Изменить» (или «Изменить >«) рядом с версией Visual Studio, которую вы хотите изменить. См. раздел Изменение Visual Studio.
Процедуры, описанные в этой статье, применяются только к платформа .NET Framework проектам Windows Forms, а не к проектам Windows Forms .NET Core.
Создание проекта и файла локальной базы данных
- Создайте проект приложения Windows Forms (платформа .NET Framework) и назовите его SampleDatabaseWalkthrough.
- В строке меню выберите «Добавить новый элемент проекта>«. Если появится небольшое диалоговое окно с полем для имени файла, выберите «Показать все шаблоны«.
- В списке шаблонов элементов прокрутите вниз и выберите базу данных на основе служб.


Просмотр свойств подключения к данным
Вы можете просмотреть строка подключения для файла SampleDatabase.mdf, открыв окно свойств подключения к данным:
- Выберите «Просмотреть> SQL Server» обозреватель объектов, чтобы открыть окно обозреватель объектов SQL Server. Разверните (localdb)\MSSQLLocalDB>Database, а затем щелкните правой кнопкой мыши sampleDatabase.mdf (он может быть указан как полный путь) и выберите «Свойства».
- Кроме того, можно выбрать Обозреватель представления>сервера, если это окно еще не открыто. Откройте окно свойств, разверните узел «Данные Подключение ions«, щелкните правой кнопкой мыши файл SampleDatabase.mdf и выберите «Свойства«.
Совет Если вы не можете развернуть узел «Данные Подключение ions», или подключение SampleDatabase.mdf не указано, нажмите кнопку Подключение в базу данных на панели инструментов сервера Обозреватель. В диалоговом окне «Добавить Подключение ion» убедитесь, что в источнике данных выбран файл базы данных Microsoft SQL Server, а затем перейдите к файлу SampleDatabase.mdf и выберите его. Завершите добавление подключения, нажав кнопку «ОК«.
Создание таблиц и ключей с помощью конструктора таблиц
В этом разделе вы создадите две таблицы, первичный ключ в каждой таблице и несколько строк примеров данных. Вы также создаете внешний ключ, чтобы указать, как записи в одной таблице соответствуют записям в другой таблице.
Создание таблицы Customers
- В обозревателе объектов Сервера Обозреватель или SQL Server разверните узел «Данные Подключение ions«, а затем развернитеузел SampleDatabase.mdf.
- Щелкните правой кнопкой мыши таблицы и выберите «Добавить новую таблицу«. Будет открыт Конструктор таблиц, отобразится сетка с одной строкой по умолчанию, которая представляет один столбец в создаваемой таблице. Добавляя строки в сетку, вы добавляете столбцы в таблицу.
- В сетке добавьте строку для каждой из следующих записей.
Имя столбца Тип данных Разрешить значения null CustomerID nchar(5) False (не установлен) CompanyName nvarchar(50) False (не установлен) ContactName nvarchar (50) True (установлен) Phone nvarchar (24) True (установлен) - Щелкните правой CustomerID кнопкой мыши строку и выберите » Задать первичный ключ«.
- Щелкните правой кнопкой мыши строку по умолчанию ( Id ), а затем выберите «Удалить«.
- Назовите таблицу «Клиенты» путем обновления первой строки в области скриптов, как показано в следующем примере:
CREATE TABLE [dbo].[Customers]
CONSTRAINT [PK_Customers] PRIMARY KEY ([CustomerID])
Отобразятся примерно следующие сведения:


Создание таблицы «Заказы»
- Создайте еще одну таблицу, а затем добавьте строку для каждой записи следующей таблицы.
Имя столбца Тип данных Разрешить значения null OrderID int False (не установлен) CustomerID nchar(5) False (не установлен) OrderDate datetime True (установлен) OrderQuantity int True (установлен) - Задайте OrderID в качестве первичного ключа и удалите строку по умолчанию.
- Назовите таблицу «Заказы» путем обновления первой строки в области скриптов, как показано в следующем примере:
CREATE TABLE [dbo].[Orders]
CONSTRAINT [PK_Orders] PRIMARY KEY ([OrderId])


Создание внешнего ключа
- В области контекста справа от сетки конструктора таблиц для таблицы «Заказы» щелкните правой кнопкой мыши внешние ключи и выберите «Добавить новый внешний ключ«.


CONSTRAINT [FK_Orders_Customers] FOREIGN KEY ([CustomerID]) REFERENCES [Customers]([CustomerID])
Заполнение таблиц данными
- В обозреватель объектов Server Обозреватель или SQL Server разверните узел для примера базы данных.
- Откройте контекстное меню узла «Таблицы», выберите «Обновить» и разверните узел «Таблицы«.
- Откройте контекстное меню таблицы «Клиенты», а затем выберите «Показать данные таблицы» или «Просмотреть данные«.
- Добавьте все нужные данные для некоторых клиентов. Можно указать любые пять символов как ИД клиентов, но хотя бы один нужно выбрать и запомнить для дальнейшего использования в этой процедуре.
- Откройте контекстное меню таблицы «Заказы», а затем выберите «Показать данные таблицы» или «Просмотреть данные«.
- Добавьте данные для некоторых заказов. При вводе каждой строки она сохраняется в базе данных.
Важно! Убедитесь, что все идентификаторы заказов и количества заказов — целые числа, и каждый идентификатор клиента соответствует значению, указанному в столбце CustomerID таблицы клиентов.
Поздравляем! Теперь вы знаете, как создавать таблицы, связывать их с внешним ключом и добавлять данные.
См. также
#3 — Подключение MySQL и создание базы данных

Чтобы работать с базой данных к ней изначально необходимо подключиться. В уроке вы создадите базу данных MySQL, а также выполните подключение к ней при помощи специальных C# классов и MySQL коннектора.
Видеоурок
Полезные ссылки:
- MySQL C# Connector ;
- Локальный сервер Mamp ;
- Локальный сервер OpenServer ;
- Локальный сервер XAMPP ;
Подключение к БД
Для работы с базой данных MySQL необходимо установить специальный коннектор. Его нужно скачать на официальном сайте MySQL и далее выполнить его установку.
После установки MySQL выполните установку локального сервера и подключитесь к графическому редактору PhpMyAdmin. Для локального сервера можете использовать любую подходящую программу.
Создание БД
Создание базы данных происходит внутри PhpMyAdmin. Вам необходимо создать БД, заполнить её таблица и уже внутрь самих таблиц записать значения.
Базу данных можно представить как иерархическую модель данных на вашей ОС:

В БД главным объектом является сама база данных, внутри которой может находиться множество таблиц, внутри которых находятся определенные записи.
Весь код будет доступен после подписки на проект!
Подключение базы данных к Windows Forms
Базы данных и Windows Forms
Полный нуб в .net Вообщем есть 2 формы Вход в личный кабинет и сам личный кабинет Кусок кода из.
Создать программу на Windows Forms с использованием базы данных
Прошу прощения, если эта тема уже обсуждалась, но я уже просто не знаю что делать:( Помогите.
Подключение dll (.NET) к проекту Windows Forms
Приветствую! Пытаюсь подключить библиотеку dll, которую сам же создал: // #include.
Диалоговое окно подключение к Access из Windows Forms
Подскажите пожалуйста! Как создать такую форму? C# Windows Forms + Access (.accdb) После.
Приложение на C# + связка с MySQL базой данных
Привет всем кодерам! В этом мини-туториале мы с вами с нуля напишем десктопное приложение на С#, которое будет работать с базой данных. Это задание было дано учебной программой 11 класса НИШ ФМН г.Алматы.
Что мы будем для этого использовать?
- Среда программирования: Visual Studio 2017 (версия не имеет никакого значения)
- Языки: C# — для клиентской части приложения, MySQL — для работы с данными в базе данных нашего приложения
Что будет выполнять приложение?
Наше приложение будет добавлять, изменять, обновлять, удалять и запрашивать данные из базы данных каратистов. «А почему каратистов?» — спросите вы. Так потому что это самая родная для меня тема, вот и будем рассматривать данный пример.
Создание проекта
После того, как вы скачали Visual Studio себе на компьютер, вам следует создать проект.
Как это сделать?
Создать проект -> Visual C# -> Приложение Windows Forms -> *Выбираем название для проекта и его расположение* -> OK
Теперь у вас готов проект и можно приступать к работе!
Создание форм (Часть 1)
Теперь нам нужно создать графический интерфейс приложения через формы. Добавлять новые формы легко. Просто нажимаете правой кнопкой мыши на свой проект и выбираете «Добавить», как на скриншоте ниже:
Далее следует поработать над дизайном наших форм. Не будем сильно изощряться и сделаем максимально минималистичный дизайн:
Главное меню
Меню выбора
Меню выбора для редактирования
Форма для добавления нового пользователя
Так-с. Дальше пока что мы не пойдём, так как для начала нам нужно понять как всё будет работать. У нас есть форма для добавления каратиста, и нам еще нужны формы для создания запросов, для просмотра базы данных и для редактирования её. Но где сама база данных?
Её нет. Поэтому нам нужно немедленно её создать!
Создание базы данных
Переходим во вкладку «Средства» и выбираем «Подключиться к базе данных». Далее открывается окно «Добавить подключение», где в поле «Источник данных» мы выбираем «Файл базы данных Microsoft SQL Server (SqlClient)«. Даём любое название файлу базы данных, в нашем случае — «IOGKF_members». Далее нажимаем кнопку «ОК» и в левой стороне экрана видим, как у нас добавилась новая база данных.
Раскрываем директорию с нашей базой данных и видим самую первую папку «Таблицы» — она нас и интересует. Жмём по ней правой кнопкой мыши и нажимаем «Добавить новую таблицу».
Можно создать таблицу двумя путями: 1) Конструктором 2) Через SQL код
Если вам лень делать её самим, то скопируйте следующий SQL код и вставьте его в поле с кодом у таблицы:
CREATE TABLE [dbo].[Members] ( [member_id] INT NOT NULL, [last_name] VARCHAR (20) NULL, [first_name] VARCHAR (20) NULL, [age] INT NULL, [rank] VARCHAR (3) NULL, [rank_value] INT NULL, [sensei] VARCHAR (20) NULL, [dojo] VARCHAR (20) NULL, PRIMARY KEY CLUSTERED ([member_id] ASC) );
Коротко о типах данных в SQL
- varchar — тот же самый String, то есть строка (в скобках пишем её максимальную длину)
- int — целые числа
- binary — тот же самый boolean, то есть True or False, только в SQL — это 1 и 0 соответственно
null — указываем может ли переменная быть пустой, то есть не содержать информации
primary key — первичный ключ, в данном случае это member_id. Таким образом, все значения member_id уникальны
После того как вы создали таблицу, нужно её сохранить. Нажмите ctrl + s или просто закройте файл с таблицей после чего у вас появится сообщение о сохранении таблицы.
Ок, теперь у нас есть база данных и таблица, где будет храниться информация о каратистах.
Создание форм (Часть 2) + код
Давайте напишем программный код для добавления каратистов в нашу базу данных. В моём проекте эта форма называется Form5 (у неё надпись «Add User» в предыдущих скриншотах). В классе этой формы пишем следующее:
public string conString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\HP\\Desktop\\IOGKF\\IOGKF\\IOGKF_members.mdf;Integrated Security=True;Connect Timeout=30";
Здесь мы создали строковую переменную conString и присвоили ей значение строки подключения базы данных. Чтобы посмотреть вашу строку подключения нажмите правой кнопкой мыши по базе данных и выберите «Свойства»:
Теперь два раза нажимаем на кнопку «Add» в конструкторе нашей формы и таким образом открываем код, который будет выполняться при её нажатии. Вот код метода, который выполняется при нажатии:
private void button1_Click(object sender, EventArgs e) < SqlConnection con = new SqlConnection(conString); con.Open(); if(con.State == System.Data.ConnectionState.Open) < string q = "insert into Members(member_id, last_name, first_name," + " age, rank, rank_value, sensei, dojo)" + " values('" + textBox1.Text.ToString() + "','" + textBox2.Text.ToString() + "','" + textBox3.Text.ToString() + "','" + textBox4.Text.ToString() + "','" + comboBox2.Text.ToString() + "','" + comboBox1.Text.ToString() + "','" + comboBox3.Text.ToString() + "','" + textBox8.Text.ToString() + "') "; SqlCommand cmd = new SqlCommand(q, con); cmd.ExecuteNonQuery(); MessageBox.Show("Connection was successful!"); >con.Close(); >
Мы создаём объект con типа SqlConnection и если наша база данных подключена к приложению у нас будет выполняться код находящийся под блоком if. Там у нас сохранена SQL команда в строке q, которая позже передаётся в объект cmd типа SqlCommand, который позже выполняет функцию ExecuteNonQuery, которая выполняет данный SQL запрос. После при успешном выполнении в приложении выведется сообщение об успешном добавлении каратиста. Всё достаточно просто!
Кстати, как работают кнопки навигации в приложении, то есть для перехода между формами?
Вот держите пример кода, по этому шаблону они все и работают:
private void button3_Click(object sender, EventArgs e)
Далее давайте напишем код для формы с обычным просмотром базы данных. Допустим, что мы уже заполнили базу данных и она должна выглядить так при работе приложения:
Чтобы ��рийти к такому результату нам нужно добавить в нашу форму DataGridView, объект, который будет отображать таблицу. Сделать это очень просто, на скриншоте это видно:
В классе этой формы пишем следующее:
SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\HP\\Desktop\\IOGKF\\IOGKF\\IOGKF_members.mdf;Integrated Security=True;Connect Timeout=30"); SqlCommand cmd; SqlDataAdapter adapt;
Что-то наподобии этой строчки у вас должно появиться автоматически в Load методе класса вашей формы:
this.membersTableAdapter.Fill(this.iOGKF_membersDataSet.Members);
Она заполняет DataGridView данными из таблицы. Теперь в этот же метод Load добавляем эти строчки кода. С помощью них база данных будет постоянно обновляться внешне:
con.Open(); DataTable dt = new DataTable(); adapt = new SqlDataAdapter("select * from Members", con); adapt.Fill(dt); dataGridView1.DataSource = dt; con.Close();
А как сделать так, чтобы каратисты показывались по определённым критериям? Здесь нам нужно делать уже SQL запрос, но о них информация будет чуть позже на канале. Создаём новую форму, добавляем DataGridView и несколько текстовых полей. Кто шарит в SQL, тот поймёт в чем смысл этой формы:
Пишем код в метод, который будет выполняться при нажатии на кнопку «Show»:
private void button1_Click(object sender, EventArgs e)
В принципе, алгоритм здесь тот же самый, но мы уже создаем отдельный DataSet — коллекцию неупорядоченных данных, которые позже будут отображаться в DataGridView. Сам же DataSet был заполнен теми данными, которые получились от SQL запроса.
Напоследок осталось одно из самых сложных — сделать форму с редактированием базы данных. Вот, как она выглядит:
Как всегда пишем эти строчки кода в класс формы:
public string conString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\HP\\Desktop\\IOGKF\\IOGKF\\IOGKF_members.mdf;Integrated Security=True;Connect Timeout=30"; SqlConnection con = new SqlConnection("Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\HP\\Desktop\\IOGKF\\IOGKF\\IOGKF_members.mdf;Integrated Security=True;Connect Timeout=30"); SqlCommand cmd; SqlDataAdapter adapt;
А это, как я раньше писал, для постоянного внешнего обновления базы данных в DataGridView:
private void Form7_Load(object sender, EventArgs e)
Теперь мы начнём писать код для кнопок.
Код для добавления каратистов из таблицы:
private void button1_Click(object sender, EventArgs e) < if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && textBox5.Text != "" && textBox6.Text != "" && textBox7.Text != "" && textBox8.Text != "") < cmd = new SqlCommand("insert into Members(member_id,last_name,first_name,age,rank,rank_value,sensei,dojo) values(@member_id,@last_name,@first_name,@age,@rank,@rank_value,@sensei,@dojo)", con); con.Open(); cmd.Parameters.AddWithValue("@member_id", textBox1.Text); cmd.Parameters.AddWithValue("@last_name", textBox2.Text); cmd.Parameters.AddWithValue("@first_name", textBox3.Text); cmd.Parameters.AddWithValue("@age", textBox4.Text); cmd.Parameters.AddWithValue("@rank", textBox5.Text); cmd.Parameters.AddWithValue("@rank_value", textBox6.Text); cmd.Parameters.AddWithValue("@sensei", textBox7.Text); cmd.Parameters.AddWithValue("@dojo", textBox8.Text); cmd.ExecuteNonQuery(); con.Close(); MessageBox.Show("Record Inserted Successfully"); DisplayData(); ClearData(); >else < MessageBox.Show("Please Provide Details!"); >>
Код для редактирования информации о каратистах:
private void button4_Click(object sender, EventArgs e) < if (textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && textBox5.Text != "" && textBox6.Text != "" && textBox7.Text != "" && textBox8.Text != "") < cmd = new SqlCommand("update Members set member_id=@member_id,last_name=@last_name,first_name=@first_name,age=@age,rank=@rank,rank_value=@rank_value,sensei=@sensei,dojo=@dojo where member_id=@member_id", con); con.Open(); cmd.Parameters.AddWithValue("@member_id", textBox1.Text); cmd.Parameters.AddWithValue("@last_name", textBox2.Text); cmd.Parameters.AddWithValue("@first_name", textBox3.Text); cmd.Parameters.AddWithValue("@age", textBox4.Text); cmd.Parameters.AddWithValue("@rank", textBox5.Text); cmd.Parameters.AddWithValue("@rank_value", textBox6.Text); cmd.Parameters.AddWithValue("@sensei", textBox7.Text); cmd.Parameters.AddWithValue("@dojo", textBox8.Text); cmd.ExecuteNonQuery(); MessageBox.Show("Record Updated Successfully"); con.Close(); DisplayData(); ClearData(); >else < MessageBox.Show("Please Select Record to Update"); >>
Код для удаления каратистов из базы данных:
private void button5_Click(object sender, EventArgs e) < if (textBox1.Text != null) < cmd = new SqlCommand("delete Members where member_id=@member_id", con); con.Open(); cmd.Parameters.AddWithValue("@member_id", textBox1.Text); cmd.ExecuteNonQuery(); con.Close(); MessageBox.Show("Record Deleted Successfully!"); DisplayData(); ClearData(); >else < MessageBox.Show("Please Select Record to Delete"); >>
Весь код выше работает по алгоритму, который я объяснял выше: идёт соединение с базой данных, выполняется команда, добавляются параметры в эту команду из текстовых полей и далее выводится сообщение.
Как вы заметили везде вызываются 2 метода — DisplayData и ClearData. Вот код для них:
private void DisplayData() < con.Open(); DataTable dt = new DataTable(); adapt = new SqlDataAdapter("select * from Members", con); adapt.Fill(dt); dataGridView1.DataSource = dt; con.Close(); >private void ClearData()
Также надо написать код для метода, который будет вызываться при нажатии на header в DataGridView и будет заполнять текстовые поля. Header — эта та область DataGridView, при нажатии на которую будет выделяться вся информация о каратисте, соответственно эта информация будет добавляться в соответствующие текстовые поля, для удобного редактирования. Выглядит это так:
Но прежде чем добавить этот метод, нам необходимо создать обработчик нажатий (Event Handler). Добавляем его в конструктор нашей формы:
public Form7()
А вот теперь добавляем метод:
private void OnRowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
Вот и всё! У нас почти готовая программа, тебе надо лишь чуть доработать её и добавить мелкие детали!
Если что, я добавил этот проект к себе в GitHub, поэтому весь код можно посмотреть именно там. Только осторожно, там очень много файлов в которых можно легко запутаться. Желаю тебе удачи! 😀
