Вставка, обновление, удаление: руководство по подключению к базе данных ASP.NET
Доступ к данным из базы данных является важным аспектом любого языка программирования. Для любого языка программирования необходима возможность работы с базами данных.
ASP.Net имеет возможность работать с разными типами баз данных. Он может работать с наиболее распространенными базами данных, такими как Oracle и Microsoft SQL Сервер.
Он также имеет возможность работать с новыми формами баз данных, такими как MongoDB и MySQL.
Основы подключения к базе данных
ASP.Net имеет возможность работать с большинством баз данных. Самое распространенное существо Oracle и Microsoft SQL Server. Но логика работы с каждой базой данных практически одинакова.
В наших примерах мы рассмотрим работу с Microsoft SQL Server как наша база данных. В целях обучения можно скачать и использовать Microsoft SQL Server Экспресс-издание. Это бесплатное программное обеспечение для работы с базами данных, предоставляемое Microsoft.
При работе с базами данных следующие понятия являются общими для всех баз данных.
- Связь – Для работы с данными в базе данных первым очевидным шагом является подключение. Соединение с базой данных обычно состоит из следующих параметров.
- Имя базы данных или источник данных – Первый важный параметр – это имя базы данных. Каждое соединение может одновременно работать только с одной базой данных.
- Полномочия – Следующий важный аспект – это «имя пользователя» и «пароль». Это используется для установления соединения с базой данных.
- Необязательные параметры – Вы можете указать дополнительные параметры того, как .net должен обрабатывать соединение с базой данных. Например, можно указать параметр, как долго соединение должно оставаться активным.
- Выбор данных из базы данных – После установления соединения данные извлекаются из базы данных. ASP.Net имеет возможность выполнять команду выбора «sql» для базы данных. Оператор «sql» можно использовать для извлечения данных из определенной таблицы в базе данных.
- Вставка данных в базу данных – ASP.Net используется для вставки записей в базу данных. Значения для каждой строки, которую необходимо вставить в базу данных, указаны в ASP.Net.
- Обновление данных в базе данных – ASP.Net также можно использовать для обновления существующих записей в базе данных. Новые значения можно указать в ASP.Net для каждой строки, которую необходимо обновить в базе данных.
- Удаление данных из базы данных – ASP.Net также можно использовать для удаления записей из базы данных. Код написан для удаления определенной строки из базы данных.
Хорошо, теперь мы рассмотрели теоретическую часть каждой операции. Теперь давайте посмотрим, как выполнять операции с базой данных в ASP.Net.
Подключения к базе данных ASP.NET
Давайте теперь посмотрим на код, который необходимо сохранить для создания подключения к базе данных. В нашем примере мы подключимся к базе данных с именем Demodb. Учетные данные, используемые для подключения к базе данных, приведены ниже.
- Имя пользователя – са
- Пароль – demo123
Давайте поработаем с нашим текущим веб-приложением, созданным в предыдущих разделах.
- Начните добавлять в него операции с базой данных.
- В нашем примере рассматривается установка простого соединения. Это соединение осуществляется с базой данных Demodb. Это делается при первом запуске страницы.
- Когда соединение будет установлено, пользователю будет отправлено сообщение. В сообщении будет указано, что соединение установлено.
Давайте выполним следующие шаги, чтобы добиться этого.
Шаг 1) Давайте сначала убедимся, что ваше веб-приложение (DemoApplication) открыто в Visual Studio. Double щелкните файл demo.aspx.cs, чтобы ввести код для подключения к базе данных.
Шаг 2) Добавьте приведенный ниже код, который будет использоваться для установления соединения с базой данных.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connetionString; SqlConnection cnn; connetionString = @"Data Source=WIN-50GP30FGO75;Initial Catalog=Demodb ;User ID=sa;Password=demol23"; cnn = new SqlConnection(connetionString); cnn.Open(); Response.Write("Connection MAde"); conn.Close(); } } }
Объяснение кода: -
- Первым шагом является создание переменных. Он будет использоваться для создания строки подключения и подключения к базе данных SQL Server.
- Следующим шагом будет создание строки подключения. Строка подключения состоит из следующих частей
- Источник данных – это имя сервера, на котором находится база данных. В нашем случае он находится на машине под названием WIN-50GP30FGO75.
- Исходный каталог используется для указания имени базы данных.
- Идентификатор пользователя и пароль — это учетные данные, необходимые для подключения к базе данных.
- Далее мы присваиваем соединительную строку переменной cnn.
- Переменная cnn имеет тип SqlConnection. Это используется для установления соединения с базой данных.
- SqlConnection — это класс в ASP.Net, который используется для создания подключения к базе данных.
- Чтобы использовать этот класс, вам необходимо сначала создать объект этого класса. Следовательно, здесь мы создаем переменную с именем «cnn», которая имеет тип SqlConnection.
- Далее мы используем метод open переменной cnn, чтобы открыть соединение с базой данных. Выводим пользователю сообщение о том, что соединение установлено. Это делается с помощью методаresponse.write. Затем мы закрываем соединение с базой данных.
Когда приведенный выше код установлен и проект выполняется с использованием Visual Studio. Вы получите результат ниже. После отображения формы нажмите кнопку «Подключиться».
Выход:-
Выходное сообщение, отображаемое в браузере, покажет, что соединение с базой данных установлено.
ASP.NET Чтение базы данных с помощью SqlDataReader
Чтобы отобразить данные, доступные с помощью Asp.Net, предположим, что в нашей базе данных имеются следующие артефакты.
- Таблица под названием demotb. Эта таблица будет использоваться для хранения идентификаторов и названий различных руководств.
- В таблице будет два столбца: один называется «TutorialID», а другой — «TutorialName».
- На данный момент таблица будет состоять из двух строк, как показано ниже.
TutorialID | Название учебника |
---|---|
1 | C# |
2 | ASP.Net |
Давайте изменим код, чтобы мы могли запрашивать эти данные и отображать информацию на самой веб-странице. Обратите внимание, что введенный код является продолжением кода, написанного для модуля подключения данных.
Шаг 1) Давайте разделим код на две части:
- Первая часть будет заключаться в построении нашего оператора «select». Он будет использоваться для чтения данных из базы данных.
- Затем мы выполним оператор «select» для базы данных. Это приведет к выборке всех строк таблицы соответственно.
Объяснение кода: -
- Первый шаг — создать следующие переменные
- SQLCommand. SQLCommand — это класс, определенный в C#. Этот класс используется для выполнения операций чтения и записи в базу данных. Следовательно, первый шаг — убедиться, что мы создаем тип переменной этого класса. Эта переменная затем будет использоваться на последующих этапах чтения данных из нашей базы данных.
- Объект DataReader используется для получения всех данных, указанных в SQL-запросе. Затем мы можем прочитать все строки таблицы одну за другой с помощью устройства чтения данных.
- Затем мы определяем две строковые переменные. Один из них — «SQL» для хранения командной строки SQL. Следующим является «Вывод», который будет содержать все значения таблицы.
- Следующим шагом будет фактическое определение оператора SQL. Это будет использоваться в нашей базе данных. В нашем случае это «Выберите TutorialID, TutorialName из demotb». Это позволит получить все строки из таблицы demotb.
- Затем мы создаем объект команды, который используется для выполнения оператора SQL в базе данных. В команде SQL вам необходимо передать объект соединения и строку SQL.
- Далее мы выполним команду чтения данных, которая извлечет все строки из таблицы demotb.
- Теперь, когда у нас есть все строки таблицы, нам нужен механизм для доступа к каждой строке одна за другой.
- Для этого мы будем использовать оператор while.
- Оператор while будет использоваться для доступа к строкам из устройства чтения данных по одной.
- Затем мы используем метод GetValue, чтобы получить значение TutorialID и TutorialName.
Шаг 2) На последнем этапе мы просто покажем вывод пользователю. Затем мы закроем все объекты, связанные с работой базы данных.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataReader dataReader; String sql, Output =" "; sql = "Select TutorialID,TutorialName from demotb"; command = new SqlCommand(sql, cnn); dataReader = sqlquery.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.dispose(); conn.Close(); } } }
Объяснение кода: -
- Мы продолжим наш код, отображая значение выходной переменной. Это делается с помощью метода Response.Write.
- Наконец, мы закрываем все объекты, связанные с работой нашей базы данных. Помните, что это всегда хорошая практика.
Когда приведенный выше код установлен и проект запускается с использованием Visual Studio, вы получите приведенный ниже вывод.
Выход:-
Из вывода ясно видно, что программа смогла получить значения из базы данных. Затем данные отображаются в браузере пользователю.
Вставьте запись базы данных с помощью InsertCommand
Как и при доступе к данным, ASP.Net также имеет возможность вставлять записи в базу данных. Давайте возьмем ту же структуру таблицы, которая используется для вставки записей.
TutorialID | Название учебника |
---|---|
1 | C# |
2 | ASP.Net |
Давайте изменим код нашей формы, чтобы мы могли вставить в таблицу следующую строку:
TutorialID | Название учебника |
---|---|
3 | VB.Net |
Шаг 1) В качестве первого шага давайте добавим в нашу программу следующий код. Приведенный ниже фрагмент кода будет использоваться для вставки существующей записи в нашу базу данных.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql=""; sql = "Insert into demotb(TutorialID,TutorialName) value(3, '" + "VB.Net +"')"; command = new SqlCommand(sql,cnn); adapter.InsertCommand = new SqlCommand(sql,cnn); adapter.InsertCommand.ExecuteNonQuery(); command.Dispose(): cnn.Close(); } } }
Объяснение кода: -
- Первый шаг — создать следующие переменные
- SQLCommand — этот тип данных используется для определения объектов. Эти объекты выполняют операции SQL с базой данных. Этот объект будет содержать команду SQL, которая будет выполняться в нашей базе данных SQL Server.
- Объект DataAdapter используется для выполнения команд вставки, удаления и обновления SQL.
- Затем мы определяем строковую переменную «SQL» для хранения нашей командной строки SQL.
- Следующим шагом будет определение оператора SQL, который будет использоваться в нашей базе данных. В нашем случае мы выполняем оператор вставки. Это вставит запись TutorialID=3 и TutorialName=VB.Net.
- Затем мы создаем объект команды, который используется для выполнения оператора SQL в базе данных. В команде SQL вам необходимо передать объект подключения и строку SQL.
- В нашей команде адаптера данных
- Свяжите команду вставки SQL с адаптером.
- Затем выполните метод «ExecuteNonQuery». Это используется для выполнения оператора Insert в нашей базе данных.
- Метод «ExecuteNonQuery» используется в C# для выполнения любых операторов DML (операций вставки, удаления и обновления) для базы данных.
- Чтобы выполнить какие-либо операторы таблицы в ASP.Net, необходимо использовать метод «ExecuteNonQuery».
- Наконец, мы закрываем все объекты, связанные с работой нашей базы данных. Помните, что это всегда хорошая практика.
Шаг 2) В качестве второго шага давайте добавим тот же код, что и в разделе «Доступ к данным». Это необходимо для отображения последних данных таблицы в браузере. Для этого мы добавим приведенный ниже код в файл demo.aspx.cs.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand sqlquery; SqlDataReader dataReader; String Output =" "; sql = "Select TutorialID,TutorialName from demotb"; sqlquery = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.dispose(); conn.Close(); } } }
Когда приведенный выше код установлен и проект выполняется в Visual Studio, вы получите приведенный ниже вывод.
Выход:-
В окне браузера вы увидите, что строки успешно вставлены в базу данных.
Обновить запись базы данных с помощью UpdateCommand
ASP.Net имеет возможность обновлять существующие записи из базы данных. Давайте возьмем ту же структуру таблицы, которая использовалась выше для примера для вставки записей.
TutorialID | Название учебника |
---|---|
1 | C# |
2 | ASP.Net |
3 | VB.Net |
Давайте изменим код в нашей форме, чтобы мы могли обновить следующую строку. Старое значение строки — TutorialID — «3», а Tutorial Name — «VB.Net». Мы обновим его до «VB.Net Complete», а значение строки для Tutorial ID останется прежним.
Старый ряд
TutorialID | Название учебника |
---|---|
3 | VB.Net |
Новая строка
TutorialID | Название учебника |
---|---|
3 | VB.Net завершен |
Шаг 1) В качестве первого шага давайте добавим в нашу программу следующий код. Приведенный ниже фрагмент кода будет использоваться для обновления существующей записи в нашей базе данных.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql=""; sql = "Update demotb set TutorialName='"VB.Net Complete"+"' where TutorialID=3"; command = new SqlCommand(sql,cnn); adapter.InsertCommand = new SqlCommand(sql,cnn); adapter.InsertCommand.ExecuteNonQuery; command.Dispose(): cnn.Close(); } } }
Объяснение кода: -
- Первый шаг — создать следующие переменные
- SQLCommand – его тип данных используется для определения объектов для выполнения операций SQL с базой данных. Этот объект будет содержать команду SQL, которая будет выполняться в нашей базе данных SQL Server.
- Объект dataadapter используется для выполнения команд вставки, удаления и обновления SQL.
- Затем мы определяем строковую переменную, которая является SQL для хранения нашей командной строки SQL.
- Следующим шагом будет определение оператора SQL, который будет использоваться в нашей базе данных. В нашем случае мы выдаем заявление об обновлении. Это обновит имя учебника на «VB.Net Complete». TutorialID останется неизменным, а его значение будет равно 3.
- Далее мы создадим объект команды. Это используется для выполнения оператора SQL в базе данных. В команде SQL вы передали объект подключения и строку SQL.
- В нашей команде адаптера данных мы теперь связываем команду вставки SQL с нашим адаптером. Затем мы вызываем метод ExecuteNonQuery. Это используется для выполнения оператора Update в нашей базе данных.
- Наконец, мы закрываем все объекты, связанные с работой нашей базы данных. Помните, что это всегда хорошая практика.
Шаг 2) В качестве второго шага давайте добавим тот же код, что и в разделе «Доступ к данным». Это необходимо для отображения последних данных таблицы в браузере. Для этого мы добавим приведенный ниже код
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand sqlquery; SqlDataReader dataReader; String Output =" "; sql = "Select TutorialID,TutorialName from demotb"; sqlquery = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while (dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.dispose(); conn.Close(); } } }
Когда приведенный выше код установлен и проект выполняется с использованием Visual Studio, вы получите приведенный ниже вывод.
Выход:-
В окне браузера вы увидите, что строки в базе данных успешно обновились.
Удалить запись базы данных с помощью DeleteCommand
ASP.Net может удалять существующие записи из базы данных. Давайте возьмем ту же структуру таблицы, которая использовалась выше для примера удаления записей.
TutorialID | Название учебника |
---|---|
1 | C# |
2 | ASP.Net |
3 | VB.Net завершен |
Давайте изменим код в нашей форме, чтобы мы могли удалить следующую строку
TutorialID | Название учебника |
---|---|
3 | VB.Net завершен |
Итак, давайте добавим следующий код в нашу программу. Приведенный ниже фрагмент кода будет использоваться для удаления существующей записи в нашей базе данных.
Шаг 1) В качестве первого шага давайте добавим в нашу программу следующий код. Приведенный ниже фрагмент кода будет использоваться для удаления существующей записи в нашей базе данных.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand command; SqlDataAdapter adapter = new SqlDataAdapter(); String sql=""; sql = "Delete demotb where TutorialID=3"; command = new SqlCommand(sql,cnn); adapter.DeleteCommand = new SqlCommand(sql,cnn); adapter.DeleteCommand.ExecuteNonQuery; command.Dispose(): cnn.Close(); } } }
Объяснение кода: -
- Ключевое отличие этого кода заключается в том, что теперь мы выполняем оператор удаления SQL. Оператор удаления используется для удаления строки в таблице demotb, в которой TutorialID имеет значение 3.
- В нашей команде адаптера данных мы теперь связываем команду вставки SQL с нашим адаптером. Мы также используем метод «ExecuteNonQuery», который используется для выполнения оператора удаления в нашей базе данных.
Шаг 2) В качестве второго шага давайте добавим тот же код, что и в разделе «Доступ к данным». Это необходимо для отображения последних данных таблицы в браузере. Для этого мы добавим приведенный ниже код.
namespace DemoApplication { public partial class Demo System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlCommand sqlquery; SqlDataReader dataReader; String Output =""; sql = "Select TutorialID,TutorialName from demotb"; sqlquery = new SqlCommand(sql, cnn); dataReader = command.ExecuteReader(); while(dataReader.Read()) { Output = Output + dataReader.GetValue(0) + "-" + dataReader.GetValue(1) + "</br>"; } Response.Write(Output); dataReader.Close(); command.dispose(); conn.Close(); } } }
Когда приведенный выше код установлен и проект выполняется с использованием Visual Studio, вы получите приведенный ниже вывод.
Выход:-
Подключение элементов управления Asp.net к данным
Мы увидели, как можно использовать команды ASP.Net, такие как SQLCommand и SQLReader, для извлечения данных из базы данных. Мы также увидели, как можно прочитать каждую строку таблицы и отобразить ее на веб-странице.
Существуют методы, позволяющие напрямую связать элементы управления с различными полями таблицы. На данный момент к приложению ASP.Net можно привязать только указанные ниже элементы управления.
- Список флажков
- Список Радиокнопок
- Выпадающий список
- Список
Итак, давайте посмотрим пример того, как мы можем использовать привязку элементов управления в ASP.Net. Здесь мы возьмем пример списка. Допустим, в нашей базе данных есть следующие данные.
TutorialID | Название учебника |
---|---|
1 | C# |
2 | ASP.Net |
3 | VB.Net завершен |
Давайте воспользуемся элементом управления Listbox и посмотрим, как он может автоматически получать данные из нашей таблицы Demotb.
Давайте выполним следующие шаги, чтобы добиться этого.
Шаг 1) Создайте базовую веб-форму. Из панели инструментов Visual Studio перетащите 2 компонента — метки и списки. Затем выполните следующие подэтапы;
- Поместите текстовое значение первой метки в качестве TutorialID.
- Поместите текстовое значение второй метки как TutorialName.
Ниже показано, как будет выглядеть форма после выполнения вышеупомянутых шагов.
Шаг 2) Следующий шаг — начать подключение каждого списка к таблице базы данных.
- Сначала нажмите на список для идентификатора учебника. Это откроет другое диалоговое окно сбоку от элемента управления.
- В диалоговом окне нам нужно нажать на опцию «Выбрать источник данных».
Шаг 3) После этого вам будет представлено диалоговое окно. Это можно использовать для создания нового источника данных. Источник данных будет представлять собой соединение с базой данных. Выберите опцию «Новый источник данных».
Шаг 4) Экран ниже появится после выбора нового источника данных на последнем шаге. Здесь нам нужно указать тип источника данных, который мы хотим создать.
- Выберите вариант базы данных для работы с базой данных SQL Server.
- Теперь нам нужно дать имя нашему источнику данных. Здесь мы даем ему имя DemoDataSource.
- Наконец, мы нажимаем кнопку «ОК», чтобы перейти к следующему экрану.
Шаг 5) Теперь нам нужно создать соединение с нашей базой данных. На следующем экране нажмите кнопку «Новое подключение».
Шаг 6) Далее вам нужно добавить учетные данные для подключения к базе данных.
- Выберите имя сервера, на котором находится SQL Server.
- Введите идентификатор пользователя и пароль для подключения к базе данных
- Выберите базу данных как «demotb».
- Щелкните кнопку «ОК».
Шаг 7) На следующем экране вы сможете увидеть таблицу Demotb. Просто нажмите кнопку «Далее», чтобы принять настройки по умолчанию.
Шаг 8) Теперь вы сможете проверить соединение на следующем экране.
- Нажмите кнопку «Проверить запрос», чтобы проверить, сможете ли вы получить значения из таблицы.
- Нажмите кнопку Готово, чтобы завершить работу мастера.
Шаг 9) Теперь на последнем экране вы можете нажать кнопку «ОК». Теперь это свяжет список TutorialID с именем поля TutorialID в таблице 'demotb'.
Шаг 10) Теперь пришло время связать список «Имя учебника» с полем «Имя учебника».
- Сначала щелкните поле списка названий учебников.
- Затем выберите «Источник данных» в диалоговом окне, которое появляется сбоку от списка.
Шаг 11) Вы уже увидите DemoDataSource при выборе источника данных на следующем экране.
- Выберите источник демонстрационных данных
- Нажмите кнопку OK.
Если все вышеперечисленные шаги выполнены, как показано, вы получите приведенный ниже результат.
Выход:-
Из вывода вы можете видеть, что в списках отображаются идентификатор учебника и названия учебников соответственно.
Итого
- ASP.Net может работать с такими базами данных, как Oracle и Microsoft SQL Server.
- В ASP.Net есть все команды, необходимые для работы с базами данных. Для этого необходимо установить соединение с базой данных. Вы можете выполнять такие операции, как выбор, обновление, вставка и удаление.
- Объект чтения данных в ASP.Net используется для хранения всех данных, возвращаемых базой данных. Цикл While в ASP.net можно использовать для чтения строк данных по одной.
- Объект адаптера данных используется для выполнения операций SQL, таких как вставка, удаление и обновление.
- ASP.Net может привязывать элементы управления к различным полям таблицы. Они связаны путем определения источника данных в ASP.Net. Источник данных используется для извлечения данных из базы данных и заполнения их в элементах управления.