ЧТО ТАКОЕ DATASET В ADO.NET?
Проще говоря, DataSet-это локальная копия таблицы базы данных,которая заполняется на клиентском компьютере. Он не зависит от источника данных и, поскольку он существует в локальной системе, он делает приложение быстрым и надежным. Доступ к удаленной базе данных каждый раз для обновления или получения сведений занимает много времени, поэтому наборы данных помогают сохранить локальные таблицы базы данных на вашем компьютере.
A DataSet
ведет себя как реальная база данных и представляет собой полный набор данных, который включает таблицы, ограничения и отношения между таблицами. Используя DataAdapters можно заполнить DataSet и использовать этот dataset для извлечения и хранения информации. Когда все задачи будут выполнены, обновите реальную базу данных с помощью наборов данных.
ЧТО ТАКОЕ DATAADAPTERS?
DataAdapters
используются для управления наборами данных, и это обеспечивает связь между наборами данных и источником данных. Адаптеры данных устанавливают соединение с источником данных, а затем заполняют данные наборами данных. Он также обновляет источник данных с наборами данных.
ВАЖНЫЕ СВОЙСТВА И МЕТОДЫ АДАПТЕРОВ ДАННЫХ
Свойства | Описание |
---|---|
DeleteCommand | Он используется для удаления записей из источника данных |
InsertCommand | Он используется для добавления новой записи в источник данных |
SelectCommand | Он используется для выбора записей из источника данных |
UpdateCommand | Он используется для обновления записей в источнике данных. |
TableMapping | Он используется для сопоставления фактических таблиц базы данных и наборов данных. |
Метод | Описание |
---|---|
Fill | Этот метод заполняет записи из DataAdapters в наборы данных. |
Update | Этот метод обновляет источник данных с помощью наборов данных. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System; using System.Data.SqlClient; using System.Data; namespace DataSet_Example { class Program { static void Main(string[] args) { string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string querystring = "Select * from Items"; SqlDataAdapter adapter = new SqlDataAdapter(querystring, ConString); DataSet ds = new DataSet(); adapter.Fill(ds, "Items"); Console.WriteLine(ds.GetXml()); Console.ReadKey(); } } } |
ПРИМЕР приложения с DataSet и Grid View на C#
Создайте WinForm проект, перенесите соответствующие компоненты как на рисунке.
Извлечение данных из DataSet в GridView
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace DataSet_Exampl { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnGetData_Click(object sender, EventArgs e) { string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query,ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); dataGridView1.DataSource = set.Tables["Items"]; } } } |
1
Вывод
ОБНОВЛЕНИЕ, ВСТАВКА И УДАЛЕНИЕ ЗАПИСЕЙ В Dataset
После заполнения набора данных можно обновить, вставить или удалить запись из набора данных. Вот полный пример программы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
private void btnInsert_Click(object sender, EventArgs e) { //Fill Dataset string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query, ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); //Adding New Row to DataSet DataRow row = set.Tables["Items"].NewRow(); row["Name"] = "4GB DDR3 RAM"; row["Price"] = "$50"; row["Date"] = "26 May 2017"; set.Tables["Items"].Rows.Add(row); dataGridView1.DataSource = set.Tables["Items"]; } |
Вывод
Вставить строку в набор данных
Редактирование или обновление строки В наборе данных
Если вы не знаете индекс строки или уникальный номер строки по-прежнему можно обновить или изменить строку в наборе данных с помощью следующего метода.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
private void btnUpdate_Click(object sender, EventArgs e) { //Fill Dataset string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query, ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); set.Tables["Items"].Rows[1]["Name"] = "Graphics Card"; dataGridView1.DataSource = set.Tables["Items"]; } |
Вывод
Удалить строку в наборе данных
Вы можете удалить строку из Dataset с помощью Delete()
метода.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
private void btnDelete_Click(object sender, EventArgs e) { //Fill Dataset string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query, ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); set.Tables["Items"].Rows[1].Delete(); dataGridView1.DataSource = set.Tables["Items"]; } |
Вывод
СОХРАНИТЬ ИЗМЕНЕНИЯ НАБОРА ДАННЫХ В БАЗЕ ДАННЫХ
После изменения набора данных можно сохранить изменения набора данных в базе данных.
пример программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
private void btnSave_Click(object sender, EventArgs e) { //Fill Dataset string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query, ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); //Adding New Row to DataSet and Update DataRow row = set.Tables["Items"].NewRow(); row["Name"] = "4GB DDR3 RAM"; row["Price"] = "$50"; row["Date"] = "26 May 2017"; set.Tables["Items"].Rows.Add(row); //Updating Database Table SqlCommandBuilder builder = new SqlCommandBuilder(adapter); adapter.Update(set.Tables["Items"]); MessageBox.Show("DataSet Saved to Database Successfully"); } |
Полный листинг примера программы для работы с базой данных на C# :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
using System; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace DataSet_Exampl { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnGetData_Click(object sender, EventArgs e) { //Fill DataSet string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query,ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); dataGridView1.DataSource = set.Tables["Items"]; } private void btnUpdate_Click(object sender, EventArgs e) { //Fill Dataset string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query, ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); set.Tables["Items"].Rows[1]["Name"] = "Graphics Card"; dataGridView1.DataSource = set.Tables["Items"]; } private void btnInsert_Click(object sender, EventArgs e) { //Fill Dataset string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query, ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); //Adding New Row to DataSet DataRow row = set.Tables["Items"].NewRow(); row["ID"] = 3; row["Name"] = "4GB DDR3 RAM"; row["Price"] = "$50"; row["Date"] = "26 May 2017"; set.Tables["Items"].Rows.Add(row); dataGridView1.DataSource = set.Tables["Items"]; } private void btnDelete_Click(object sender, EventArgs e) { //Fill Dataset string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query, ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); set.Tables["Items"].Rows[1].Delete(); dataGridView1.DataSource = set.Tables["Items"]; } private void btnSave_Click(object sender, EventArgs e) { //Fill Dataset string ConString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True"; string Query = "SELECT * FROM Items"; SqlDataAdapter adapter = new SqlDataAdapter(Query, ConString); DataSet set = new DataSet(); adapter.Fill(set, "Items"); //Adding New Row to DataSet and Update DataRow row = set.Tables["Items"].NewRow(); row["Name"] = "4GB DDR3 RAM"; row["Price"] = "$50"; row["Date"] = "26 May 2017"; set.Tables["Items"].Rows.Add(row); //Updating Database Table SqlCommandBuilder builder = new SqlCommandBuilder(adapter); adapter.Update(set.Tables["Items"]); MessageBox.Show("DataSet Saved to Database Successfully"); } } } |