Как написать базу данных на c

Как написать базу данных на c

Задача: разработать на C++ справочно-информационную систему, в базу данных которой (в файле) данные записываются с уникальным идентификационным номером (ID). Вариант с ручным внесением идентификационного номера исключается как неуважительный к пользователю. Да и запутаться легко, внося ID вручную.

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

Пусть требуется разработать справочно-информационную систему библиотеки. Создаём структуры с данными о книгах в фонде, книгах в выдаче, читателях и библиотекарях. Данные структуры должны записываться в файл, в каждой структуре есть данные идентификационного номера (ID). Есть два уровня пользователя. Первый — читатель, который может просматривать данные о книгах в фонде. Второй — библиотекарь, он же администратор, который может просматривать все данные, а также вносить новые данные и редактировать уже содержащиеся в базе.

Рассмотрим подробнее, как реализуется запись даннных с уникальным идентификационным номером. Наиболее важны два момента.

1. Происходит открытие файла данных о читателях. Данные считываются из файла. Из вновь созданного массива принимаются данные о номере идентификатора читалеля. Если этот номер превышает количество элементов (записях о читателях), то данные о новом читателе в базу данных записываются с номером, на 1 больше последнего номера из базы данных. Если не превышает, то номер присваивается на единицу больше числа элементов массива (читателей).

При создании приложения, которое работает с данными в базе данных, необходимо выполнить такие основные задачи, как определение строк подключения, вставка данных и выполнение хранимых процедур. When you create an application that manipulates data in a database, you perform basic tasks such as defining connection strings, inserting data, and running stored procedures. В этом разделе вы узнаете, как взаимодействовать с базой данных из простого Windows Forms приложения "формы на основе данных" с помощью Visual C# или Visual Basic и ADO.NET. By following this topic, you can discover how to interact with a database from within a simple Windows Forms "forms over data" application by using Visual C# or Visual Basic and ADO.NET. Все технологии данных .NET, в том числе наборы данных, LINQ to SQL и Entity Framework, в конечном итоге выполняют шаги, которые очень похожи на те, которые приведены в этой статье. All .NET data technologies—including datasets, LINQ to SQL, and Entity Framework—ultimately perform steps that are very similar to those shown in this article.

В этой статье демонстрируется простой способ быстрого получения данных из базы данных. This article demonstrates a simple way to get data out of a database in a fast manner. Если приложению необходимо изменить данные с помощью нетривиальных способов и обновить базу данных, следует рассмотреть возможность использования Entity Framework и привязки данных для автоматической синхронизации элементов управления пользовательского интерфейса с изменениями в базовых данных. If your application needs to modify data in non-trivial ways and update the database, you should consider using Entity Framework and using data binding to automatically sync user interface controls to changes in the underlying data.

С целью упрощения код не включает обработку исключений для выполнения в рабочей среде. To keep the code simple, it doesn’t include production-ready exception handling.

Prerequisites Prerequisites

Для создания приложения вам потребуются следующие компоненты. To create the application, you’ll need:

Visual Studio. Visual Studio.

SQL Server Express LocalDB. SQL Server Express LocalDB. Если у вас нет SQL Server Express LocalDB, его можно установить на странице загрузки SQL Server Express. If you don’t have SQL Server Express LocalDB, you can install it from the SQL Server Express download page.

В этом разделе предполагается, что вы знакомы с базовой функциональностью интегрированной среды разработки Visual Studio и можете создать Windows Forms приложение, добавить формы в проект, поместить кнопки и другие элементы управления в формы, задать свойства элементов управления и создать код для простых событий. This topic assumes that you’re familiar with the basic functionality of the Visual Studio IDE and can create a Windows Forms application, add forms to the project, put buttons and other controls on the forms, set properties of the controls, and code simple events. Если вы не знакомы с этими задачами, мы рекомендуем вам выполнить инструкции по началу работы C# с Visual и Visual Basic , прежде чем приступать к этому пошаговому руководству. If you aren’t comfortable with these tasks, we suggest that you complete the Getting started with Visual C# and Visual Basic topic before you start this walkthrough.

Настройка примера базы данных Set up the sample database

Создайте образец базы данных, выполнив следующие действия. Create the sample database by following these steps:

В Visual Studio откройте окно Обозреватель сервера . In Visual Studio, open the Server Explorer window.

Щелкните правой кнопкой мыши подключения к данным и выберите команду создать новую базу данных SQL Server. Right-click on Data Connections and choose Create New SQL Server Database.

В текстовом поле имя сервера введите (LocalDB) mssqllocaldb. In the Server name text box, enter (localdb)mssqllocaldb.

В текстовом поле имя новой базы данных введите Sales, а затем нажмите кнопку ОК. In the New database name text box, enter Sales, then choose OK.

Читайте также:  Как удалить майкрософт офис 2007

Пустая база данных Sales создается и добавляется в узел подключения к данным в обозреватель сервера. The empty Sales database is created and added to the Data Connections node in Server Explorer.

Щелкните правой кнопкой мыши подключение к данным о продажах и выберите создать запрос. Right-click on the Sales data connection and select New Query.

Откроется окно редактора запросов. A query editor window opens.

Скопируйте скрипт Transact-SQL Sales в буфер обмена. Copy the Sales Transact-SQL script to your clipboard.

Вставьте скрипт T-SQL в редактор запросов, а затем нажмите кнопку выполнить . Paste the T-SQL script into the query editor, and then choose the Execute button.

По истечении короткого времени выполнение запроса завершается и создаются объекты базы данных. After a short time, the query finishes running and the database objects are created. База данных содержит две таблицы: Customer и Orders. The database contains two tables: Customer and Orders. Эти таблицы изначально не содержат данных, но их можно добавить при запуске создаваемого приложения. These tables contain no data initially, but you can add data when you run the application that you’ll create. База данных также содержит четыре простые хранимые процедуры. The database also contains four simple stored procedures.

Создание форм и добавление элементов управления Create the forms and add controls

Создайте проект для приложения Windows Forms и назовите его SimpleDataApp. Create a project for a Windows Forms application, and then name it SimpleDataApp.

Visual Studio создает проект и несколько файлов, включая пустую форму Windows Forms с именем Form1. Visual Studio creates the project and several files, including an empty Windows form that’s named Form1.

Добавьте две формы Windows Forms в проект, чтобы он включал три формы, и назначьте им следующие имена: Add two Windows forms to your project so that it has three forms, and then give them the following names:

Навигация Navigation

NewCustomer NewCustomer

FillOrCancel FillOrCancel

Для каждой формы добавьте текстовые поля, кнопки и другие элементы управления, которые отображаются на рисунках ниже. For each form, add the text boxes, buttons, and other controls that appear in the following illustrations. Для каждого элемента управления задайте свойства, указанные в таблицах. For each control, set the properties that the tables describe.

Элементы управления "группа" и "надпись" обеспечивают большую ясность, но не используются в коде. The group box and the label controls add clarity but aren’t used in the code.

Форма навигации Navigation form

Элементы управления формы навигации Controls for the Navigation form Свойства Properties
Кнопка Button Name = btnGoToAdd Name = btnGoToAdd
Кнопка Button Name = btnGoToFillOrCancel Name = btnGoToFillOrCancel
Кнопка Button Name = btnExit Name = btnExit

Форма NewCustomer NewCustomer form

Элементы управления формы NewCustomer Controls for the NewCustomer form Свойства Properties
TextBox TextBox Name = txtCustomerName Name = txtCustomerName
TextBox TextBox Name = txtCustomerID Name = txtCustomerID

Readonly = True Readonly = True

Кнопка Button Name = btnCreateAccount Name = btnCreateAccount NumericUpDown NumericUpdown DecimalPlaces = 0 DecimalPlaces = 0

Maximum = 5000 Maximum = 5000

Name = numOrderAmount Name = numOrderAmount

DateTimePicker DateTimePicker Format = Short Format = Short

Name = dtpOrderDate Name = dtpOrderDate

Кнопка Button Name = btnPlaceOrder Name = btnPlaceOrder Кнопка Button Name = btnAddAnotherAccount Name = btnAddAnotherAccount Кнопка Button Name = btnAddFinish Name = btnAddFinish

Форма FillOrCancel FillOrCancel form

Элементы управления формы FillOrCancel Controls for the FillOrCancel form Свойства Properties
TextBox TextBox Name = txtOrderID Name = txtOrderID
Кнопка Button Name = btnFindByOrderID Name = btnFindByOrderID
DateTimePicker DateTimePicker Format = Short Format = Short

Name = dtpFillDate Name = dtpFillDate

DataGridView DataGridView Name = dgvCustomerOrders Name = dgvCustomerOrders

Readonly = True Readonly = True

RowHeadersVisible = False RowHeadersVisible = False

Кнопка Button Name = btnCancelOrder Name = btnCancelOrder Кнопка Button Name = btnFillOrder Name = btnFillOrder Кнопка Button Name = btnFinishUpdates Name = btnFinishUpdates

Сохранение строки подключения Store the connection string

Когда приложение пытается открыть подключение к базе данных, оно должно иметь доступ к строке подключения. When your application tries to open a connection to the database, your application must have access to the connection string. Чтобы не вводить строку вручную в каждой форме, сохраните строку в файле app. config в проекте и создайте метод, возвращающий строку при вызове метода из любой формы в приложении. To avoid entering the string manually on each form, store the string in the App.config file in your project, and create a method that returns the string when the method is called from any form in your application.

Строку подключения можно найти, щелкнув правой кнопкой мыши подключение данных о продажах в Обозреватель сервера и выбрав Свойства. You can find the connection string by right-clicking on the Sales data connection in Server Explorer and choosing Properties. Найдите свойство ConnectionString , а затем с помощью клавиш CTRL+A, CTRL+C выберите и скопируйте строку в буфер обмена. Locate the ConnectionString property, then use Ctrl+A, Ctrl+C to select and copy the string to the clipboard.

C#Если вы используете, в Обозреватель решенийразверните узел Свойства в проекте, а затем откройте файл Settings. Settings . If you’re using C#, in Solution Explorer, expand the Properties node under the project, and then open the Settings.settings file. Если вы используете Visual Basic, в Обозреватель решенийвыберите пункт Показывать все файлы, разверните узел Мой проект , а затем откройте файл Settings. Settings . If you’re using Visual Basic, in Solution Explorer, click Show All Files, expand the My Project node, and then open the Settings.settings file.

Читайте также:  Восстановить нечаянно удаленные фото с телефона андроид

В столбце имя введите connString . In the Name column, enter connString .

В списке тип выберите (строка подключения) . In the Type list, select (Connection String).

В списке область выберите приложение. In the Scope list, select Application.

В столбце значение введите строку подключения (без кавычек), а затем сохраните изменения. In the Value column, enter your connection string (without any outside quotes), and then save your changes.

В реальных приложениях строку подключения следует хранить безопасно, как описано в разделе строки подключения и файлы конфигурации. In a real application, you should store the connection string securely, as described in Connection strings and configuration files.

Написание кода для форм Write the code for the forms

Этот раздел содержит краткие обзоры того, что делает каждая форма. This section contains brief overviews of what each form does. Он также предоставляет код, определяющий базовую логику при нажатии кнопки на форме. It also provides the code that defines the underlying logic when a button on the form is clicked.

Форма навигации Navigation form

Форма навигации открывается при запуске приложения. The Navigation form opens when you run the application. Кнопка Добавить учетную запись открывает форму NewCustomer. The Add an account button opens the NewCustomer form. Кнопка Выполнение или отмена заказов открывает форму FillOrCancel. The Fill or cancel orders button opens the FillOrCancel form. Кнопка Выход закрывает приложение. The Exit button closes the application.

Преобразование формы навигации в начальную форму Make the Navigation form the startup form

При использовании C# в обозревателе решений откройте файл Program.cs и измените строку Application.Run на следующую: Application.Run(new Navigation()); If you’re using C#, in Solution Explorer, open Program.cs, and then change the Application.Run line to this: Application.Run(new Navigation());

Если вы используете Visual Basic, в Обозреватель решенийоткройте окно свойства , перейдите на вкладку приложение и выберите симпледатаапп. Navigation в списке начальных форм . If you’re using Visual Basic, in Solution Explorer, open the Properties window, select the Application tab, and then select SimpleDataApp.Navigation in the Startup form list.

Создание автоматически создаваемых обработчиков событий Create auto-generated event handlers

Дважды щелкните три кнопки в форме навигации, чтобы создать пустые методы обработчика событий. Double-click the three buttons on the Navigation form to create empty event handler methods. При двойном щелчке кнопки также добавляется автоматически созданный код в файл кода конструктора, который позволяет нажать кнопку для вызова события. Double-clicking the buttons also adds auto-generated code in the Designer code file that enables a button click to raise an event.

Добавление кода для логики формы навигации Add code for the Navigation form logic

На странице кода для формы навигации заполните основные тексты методов для трех обработчиков событий нажатия кнопки, как показано в следующем коде. In the code page for the Navigation form, complete the method bodies for the three button click event handlers as shown in the following code.

Форма NewCustomer NewCustomer form

Если ввести имя клиента, а затем нажать кнопку создать учетную запись , форма newCustomer создает учетную запись клиента, а SQL Server ВОЗВРАЩАЕТ значение идентификатора в качестве нового идентификатора клиента. When you enter a customer name and then select the Create Account button, the NewCustomer form creates a customer account, and SQL Server returns an IDENTITY value as the new customer ID. Затем можно разместить заказ для новой учетной записи, указав сумму и дату заказа и нажав кнопку поместить порядок . You can then place an order for the new account by specifying an amount and an order date and selecting the Place Order button.

Создание автоматически создаваемых обработчиков событий Create auto-generated event handlers

Создайте пустой обработчик событий щелчка для каждой кнопки в форме NewCustomer, дважды щелкнув каждую из четырех кнопок. Create an empty Click event handler for each button on the NewCustomer form by double-clicking on each of the four buttons. При двойном щелчке кнопки также добавляется автоматически созданный код в файл кода конструктора, который позволяет нажать кнопку для вызова события. Double-clicking the buttons also adds auto-generated code in the Designer code file that enables a button click to raise an event.

Добавление кода для логики формы NewCustomer Add code for the NewCustomer form logic

Чтобы завершить логику формы NewCustomer, выполните следующие действия. To complete the NewCustomer form logic, follow these steps.

Перенесите пространство имен System.Data.SqlClient в область, чтобы не указывать полные имена его членов. Bring the System.Data.SqlClient namespace into scope so that you don’t have to fully qualify the names of its members.

Добавьте в класс некоторые переменные и вспомогательные методы, как показано в следующем коде. Add some variables and helper methods to the class as shown in the following code.

Заполните основные тексты методов для четырех обработчиков событий нажатия кнопки, как показано в следующем коде. Complete the method bodies for the four button click event handlers as shown in the following code.

Форма FillOrCancel FillOrCancel form

Форма Филлорканцел запускает запрос для возврата заказа при вводе идентификатора заказа и нажатия кнопки найти заказ . The FillOrCancel form runs a query to return an order when you enter an order ID and then click the Find Order button. Возвращенная строка отображается в сетке данных только для чтения. The returned row appears in a read-only data grid. Можно пометить заказ как отмененный (X), если нажать кнопку отменить заказ или пометить заказ как заполненный (F), если нажать кнопку заполнить заказ . You can mark the order as canceled (X) if you select the Cancel Order button, or you can mark the order as filled (F) if you select the Fill Order button. Если нажать кнопку найти порядок еще раз, появится обновленная строка. If you select the Find Order button again, the updated row appears.

Читайте также:  Как отключить пароль на вай фай роутере

Создание автоматически создаваемых обработчиков событий Create auto-generated event handlers

Создайте пустые обработчики событий щелчка для четырех кнопок в форме Филлорканцел, дважды щелкнув кнопки. Create empty Click event handlers for the four buttons on the FillOrCancel form by double-clicking the buttons. При двойном щелчке кнопки также добавляется автоматически созданный код в файл кода конструктора, который позволяет нажать кнопку для вызова события. Double-clicking the buttons also adds auto-generated code in the Designer code file that enables a button click to raise an event.

Добавление кода для логики формы Филлорканцел Add code for the FillOrCancel form logic

Чтобы завершить логику формы Филлорканцел, выполните следующие действия. To complete the FillOrCancel form logic, follow these steps.

Перенесите следующие два пространства имен в область, чтобы не указывать полные имена их членов. Bring the following two namespaces into scope so that you don’t have to fully qualify the names of their members.

Добавьте в класс переменную и вспомогательный метод, как показано в следующем коде. Add a variable and helper method to the class as shown in the following code.

Заполните основные тексты методов для четырех обработчиков событий нажатия кнопки, как показано в следующем коде. Complete the method bodies for the four button click event handlers as shown in the following code.

Тестирование приложения Test your application

Нажмите клавишу F5 для сборки и тестирования приложения после написания кода для каждого обработчика события нажатия кнопки и общего кода программы. Select the F5 key to build and test your application after you code each Click event handler, and then after you finish coding.

В примере «Продажа билетов в кинотеатре» для задания структуры БД (фактически одной таблицы) была использована СУБД MS Access. В этом примере мы создадим БД Garage только средствами Visual Studio 2017 Community. Эту БД далее будем использовать для создания приложений, иллюстрирующих технологию ADO.NET.

Постановка задачи

Автотранспортное предприятие имеет некоторый набор автобусов, микроавтобусов и других автомобилей для оказания услуг по перевозке пассажиров по заданным маршрутам и разовым заявкам. На предприятии имеется штат водителей, способных осуществлять эти перевозки. Требуется представить закрепление за маршрутами и разовыми перевозками водителей и транспортных средств.

Решение задачи

Структура БД

Присвоим имя БД — Garage («Гараж»). Используем реляционную модель БД (для простоты). Выделим три сущности, поставив им в соответствие таблицы: «Автомобили» — Cars, «Водители» — Drivers, «Маршруты» — Routes. Каждая таблица имеет минимум четыре поля.
Cars (IDcar, Typecar, LICplate, Npass), где IDcar — ключевое поле, Typecar — марка автомобиля/автобуса, LICplate — госномер, Npass — число пассажиров;
Drivers (IDdr, Name, Rights, Work), где IDdr — ключевое поле, Name — Фамилия/имя, Rights — категория прав, Work — работает/выходной (True/False);
Routes (IDrout, Number, IDcar, IDdr), где IDrout — ключевое поле, Number — номер маршрута или заявки, IDcar, IDdr — внешние ключи (для связи с Cars и Drivers).

Размещение БД

Чтобы приступить к созданию БД, запустите Visual Studio Community 2017 и откройте Обозреватель объектов SQL Server через меню View (Просмотр). Примечание. Запустив Visual Studio Installer, проверьте в Рабочих нагрузках наличие как минимум двух сборок «Разработка классических приложений .NET» и «Хранение и обработка данных» (3.96 Гб).

Затем щелкните правой кнопкой мыши на узле SQL Server выберите первую позицию «Добавить SQL Server … «. В открывшемся диалоговом окне «Подключиться» выберите «Локально» и укажите имя сервера (localdb)MSSQLLocalDB. Проверку подлинности, пароль и имя базы данных не заполняйте, имя пользователя оставьте как Администратор.

Для сервера выберите позицию «Базы данных» и кликните по ней правой кнопкой мыши. Выберите «Добавить новую базу данных». В окне «Создание базы данных» задайте имя БД — Garage, а так же можете изменить ее местонахождение, например на «D:\___DB». Там должны появиться файлы Garage.mdf и Garage.ldf. После чего свойства нашей БД примут следующие значения:
Сервер: (localdb)MSSQLLocalDB
Строка подключения: Data Source=(localdb)MSSQLLocalDB;Initial Catalog=Garage;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False
Файл данных: D:\___DBGarage.mdf

Создание структуры таблиц

Для БД Garage добавьте новую таблицу (клик на кнопке Таблицы, Добавить новую …). Появится закладка db0.Table [Конструктор]

Видим два взаимосвязанных окна: Design и T-SQL. Отметим, что разновидность языка SQL — T-SQL (Transact-SQL) применяется в SQL Server. В окне T-SQL вместо Table укажем имя первой таблицы — Cars. В окне Design добавьте необходимые поля, указав тип данных и допустимые значения. Например, вот так:

Нажмите кнопку «Обновить» и в Окне предварительного просмотра нажмите кнопку «Обновить базу данных». Таким образом структура первой таблицы задана.

Аналогично создадим структуру таблиц Drivers:

Структура таблиц задана.

Заполнение таблиц данными

Для заполнения каждой из таблиц данными откройте каждую из них в режиме «Просмотр данных», например, для таблицы Cars:

Заметим, что введенные данные сохраняются в БД автоматически после закрытия закладки dbo.Имя [Данные].

Ссылка на основную публикацию
Как на авито найти продавца по имени
Avito – интернет-сервис для продажи и покупки товаров, предложения услуг, поиска работы. Начинающий пользователь может быстро освоить функции ресурса благодаря...
Как закачать видео с компьютера на айпад
Одна из возможных задач владельца iPhone или iPad — перенос на него видео, загруженного на компьютере или ноутбуке для последующего...
Как закачать игру на флешку телефона
Купил и вставил новую флешку, подскажите, как установить игру на флешку андроид? Скачать игры на флешку на андроид сразу из...
Как на айпаде включить два экрана
Режим разделенного экрана очень полезен, поскольку позволяет держать открытыми одновременно два приложения на устройстве, независимо от того, требуется ли открыть...
Adblock detector