Доступ к данным из базы данных является важным аспектом любого языка программирования. Для любого языка программирования необходимо иметь возможность работать с базами данных.
ASP.Net имеет возможность работать с различными типами баз данных. Он может работать с наиболее распространенными базами данных, такими как Oracle и Microsoft SQL Server.
Он также имеет возможность работать с новыми формами баз данных, такими как MongoDB и MySQL.
В этом уроке вы узнаете
- Основы подключения к базам данных
- Соединение с базой данных ASP.NET
- ASP.NET Read Database с использованием SqlDataReader
- Вставить запись базы данных с помощью InsertCommand
- Обновить запись базы данных с помощью UpdateCommand
- Удалить запись базы данных, используя DeleteCommand
- Подключение элементов управления Asp.net к данным
Основы подключения к базам данных
ASP.Net имеет возможность работать с большинством баз данных. Наиболее распространенными являются Oracle и Microsoft SQL Server. Но с каждой базой данных логика работы со всеми из них в основном одинакова.
В наших примерах мы рассмотрим работу с Microsoft SQL Server в качестве нашей базы данных. В целях обучения можно загрузить и использовать Microsoft SQL Server Express Edition. Это бесплатное программное обеспечение базы данных, предоставленное Microsoft.
При работе с базами данных используются следующие понятия, общие для всех баз данных.
- Соединение — для работы с данными в базе данных первым очевидным шагом является соединение. Соединение с базой данных обычно состоит из следующих параметров.
- Имя базы данных или источник данных . Первым важным параметром является имя базы данных. Каждое соединение может работать только с одной базой данных одновременно.
- Учетные данные . Следующий важный аспект — это «имя пользователя» и «пароль». Это используется для установления соединения с базой данных.
- Необязательные параметры. Вы можете указать необязательные параметры того, как .net должен обрабатывать соединение с базой данных. Например, можно указать параметр, как долго соединение должно оставаться активным.
- Выбор данных из базы данных. Как только соединение установлено, данные извлекаются из базы данных. ASP.Net имеет возможность выполнить команду выбора «sql» для базы данных. Оператор ‘sql’ может использоваться для извлечения данных из определенной таблицы в базе данных.
- Вставка данных в базу данных — ASP.Net используется для вставки записей в базу данных. Значения для каждой строки, которую необходимо вставить в базу данных, указаны в ASP.Net.
- Обновление данных в базе данных — ASP.Net также может быть использован для обновления существующих записей в базе данных. Новые значения могут быть указаны в ASP.Net для каждой строки, которую необходимо обновить в базе данных.
- Удаление данных из базы данных — ASP.Net также можно использовать для удаления записей из базы данных. Код написан для удаления определенной строки из базы данных.
Хорошо, теперь, когда мы увидели теоретическую часть каждой операции. Теперь давайте посмотрим, как выполнять операции с базой данных в ASP.Net.
Соединения с базой данных ASP.NET
Давайте теперь посмотрим на код, который необходимо сохранить для создания соединения с базой данных. В нашем примере мы подключимся к базе данных с именем Demodb. Учетные данные, используемые для подключения к базе данных, приведены ниже
- Имя пользователя — sa
- Пароль — demo123
Давайте работать с нашим текущим веб-приложением, созданным в предыдущих разделах.
- Начните добавлять операции с базой данных к нему.
- Наш пример — это установление простого соединения. Это соединение установлено с базой данных Demodb. Это делается при первом запуске страницы.
- Когда соединение установлено, пользователю будет отправлено сообщение. В сообщении будет указано, что соединение установлено.
Давайте выполните следующие шаги для достижения этой цели.
Шаг 1) Давайте сначала убедимся, что ваше веб-приложение (DemoApplication) открыто в Visual Studio. Дважды щелкните файл «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.
- Исходный каталог используется для указания имени базы данных
- UserID и Password — это учетные данные, необходимые для подключения к базе данных.
- Далее мы присваиваем соединительную строку переменной ‘cnn’.
- Переменная cnn имеет тип SqlConnection. Это используется для установления соединения с базой данных.
- SqlConnection — это класс в ASP.Net, который используется для создания соединения с базой данных.
- Чтобы использовать этот класс, вы должны сначала создать объект этого класса. Следовательно, здесь мы создаем переменную с именем ‘cnn’, которая имеет тип SqlConnection.
- Далее мы используем метод open переменной cnn, чтобы открыть соединение с базой данных. Мы показываем пользователю сообщение о том, что соединение установлено. Это делается с помощью метода response.write. Затем мы закрываем соединение с базой данных.
Когда приведенный выше код установлен, и проект выполняется с использованием Visual Studio. Вы получите следующий вывод. Когда форма отобразится, нажмите кнопку «Подключиться».
Вывод:-
Выходное сообщение, отображаемое в браузере, покажет, что соединение с базой данных установлено.
ASP.NET Read Database с использованием SqlDataReader
Чтобы показать данные, доступ к которым осуществляется с помощью Asp.Net, давайте предположим, что в нашей базе данных есть следующие артефакты.
- Стол под названием demotb. Эта таблица будет использоваться для хранения идентификатора и названий различных учебных пособий.
- Таблица будет иметь два столбца: один называется «TutorialID», а другой — «TutorialName».
- На данный момент таблица будет иметь две строки, как показано ниже.
TutorialID |
TutorialName |
1 |
C # |
2 |
ASP.Net |
Давайте изменим код, чтобы мы могли запрашивать эти данные и отображать информацию на самой веб-странице. Обратите внимание, что введенный код является продолжением кода, написанного для модуля подключения к данным.
Шаг 1) Давайте разделим код на две части,
- Первая часть будет заключаться в построении нашего «выбора» заявления. Он будет использоваться для чтения данных из базы данных.
- Затем мы выполним оператор «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 | TutorialName |
1 | C # |
2 | ASP.Net |
Давайте изменим код в нашей форме, чтобы мы могли вставить следующую строку в таблицу
TutorialID | TutorialName |
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 | TutorialName |
1 | C # |
2 | ASP.Net |
3 | VB.Net |
Давайте изменим код в нашей форме, чтобы мы могли обновить следующую строку. Старым значением строки является TutorialID как «3» и Tutorial Name как «VB.Net». Мы обновим его до «VB.Net complete», в то время как значение строки для идентификатора Tutorial ID останется прежним.
Старый ряд
TutorialID | TutorialName |
3 | VB.Net |
Новый ряд
TutorialID | TutorialName |
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, который будет использоваться в нашей базе данных. В нашем случае мы выпускаем оператор «update». Это изменит название Учебника на «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 |
TutorialName |
1 |
C # |
2 |
ASP.Net |
3 |
VB.Net завершен |
Давайте изменим код в нашей форме, чтобы мы могли удалить следующую строку
TutorialID |
TutorialName |
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. Оператор delete используется для удаления строки в таблице demotb, в которой TutorialID имеет значение 3.
- В нашей команде адаптера данных мы теперь связываем команду вставки SQL с нашим адаптером. Мы также выпускаем метод ExecuteNonQuery, который используется для выполнения оператора delete для нашей базы данных.
Шаг 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 могут быть привязаны только перечисленные ниже элементы управления.
- CheckBoxList
- RadioButtonList
- Раскрывающийся список
- Listbox
Итак, давайте посмотрим пример того, как мы можем использовать привязку управления в ASP.Net. Здесь мы возьмем пример списка. Допустим, у нас есть следующие данные в нашей базе данных.
TutorialID |
TutorialName |
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) Теперь пришло время привязать список со списком Tutorial Name к полю Tutorial Name.
- Во-первых, нажмите на список имен учебных пособий.
- Затем выберите «Источник данных» в диалоговом окне, которое отображается сбоку от списка.
Шаг 11) Вы уже увидите DemoDataSource при выборе источника данных на следующем экране.
- Выберите источник DemoData
- Нажмите на кнопку ОК.
Если все вышеперечисленные шаги выполняются, как показано, вы получите нижеупомянутый вывод.
Вывод:-
Из выходных данных видно, что в списках отображаются идентификатор учебного пособия и названия учебника соответственно.
Резюме
- ASP.Net может работать с базами данных, такими как Oracle и Microsoft SQL Server.
- ASP.Net имеет все команды, необходимые для работы с базами данных. Это предполагает установление соединения с базой данных. Вы можете выполнять такие операции, как выбор, обновление, вставка и удаление.
- Объект datareader в ASP.Net используется для хранения всех данных, возвращаемых базой данных. Цикл while в ASP.net можно использовать для чтения строк данных по одной за раз.
- Объект адаптера данных используется для выполнения операций SQL, таких как вставка, удаление и обновление.
- ASP.Net может связывать элементы управления с различными полями в таблице. Они связаны определением источника данных в ASP.Net. Источник данных используется для извлечения данных из базы данных и заполнения их в элементах управления.