Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Текст программы (формируется автоматически)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace _002 { public partial class Form1: Form { public Form1() { InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'planetsDataSet.PLANET' table. You can move, or remove it, as needed. this.pLANETTableAdapter.Fill(this.planetsDataSet.PLANET);
} } }
Задание
Создать базу данных ACCESS согласно своему варианту задания.
Создать приложение для демонстрации подключения базы данных ACCESS в Visual Studio 2012 C#. Протестировать приложение.
Практическая работа №03 Подключение базы данных ACCESS в Visual Studio 2012 C# методом ADO (программное) 1. Цель работы: Изучить правила подключения баз данных ACCESS вVisual Studio 2012 C#. Создать приложение для демонстрации подключения базы данных.
Темы для предварительной проработки 1). Среда разработки Visual Studio 2012 C# 2). Элементы Visual Studio 2012 C#
Теоретический материал ADO.NET. Доступ к данным
Предполагается, что к моменту написания приложения соответствующая база данных уже создана. Объектная модель ADO.NET реализует отсоединенный доступ к данным. При этом в Visual Studio.NET существует множество ВСТРОЕННЫХ мастеров и дизайнеров, которые позволяют реализовать механизмы доступа к БД еще на этапе разработки программного кода. С другой стороны, задача получения доступа к данным может быть решена непосредственно во время выполнения приложения. Концепция доступа к данным в ADO.NET основана на использовании двух компонентов: • НАБОРА ДАННЫХ (представляется объектом класса DataSet) со стороны клиента. Это локальное временное хранилище данных; • ПРОВАЙДЕРА ДАННЫХ (представляется объектом класса DataProvider). Это посредник, обеспечивающий взаимодействие приложения и базы данных со стороны базы данных (в распределенных приложениях – со стороны сервера).
ADO.NET. Объектная модель
Объектная модель ADO.NET предполагает существование (при написании приложения для работы с базой данных — использование) двух множеств классов, выполняющих четко определенные задачи при работе с базой данных:
Классы подсоединенных объектов обеспечивают установление соединения с базой данных и управление базой со стороны приложения; классы отсоединенных объектов обеспечивают сохранение, использование и преобразование полученной от базы данных информации на стороне приложения.
DataSet В рамках отсоединенной модели ADO.NET объект DataSet становится важным элементом технологии отсоединенного доступа. Объект-представитель DataSet ПРЕДСТАВЛЯЕТ МНОЖЕСТВО ТАБЛИЦ. Для успешного решения задачи представления в DataSet'е есть все необходимое. Его функциональные возможности позволяют загрузить в локальное хранилище на стороне приложения данные из любого допустимого для ADO.NET источника: SQL Server, Microsoft Access, XML-файл. В числе данных – членов этого класса имеется набор Tables. Объект DataSet может содержать таблицы, количество которых ограничивается лишь возможностями набора Tables. Для каждой таблицы – элемента набора Tables может быть (и, естественно, должна быть) определена структура таблицы. В случае, когда приложение взаимодействует с реальной базой данных, структура таблиц в DataSet'е должна соответствовать структуре таблиц в базе данных. DataSet – это находящийся в памяти объект ADO.NET, используемый в приложении для представления данных; он определяет согласованную реляционную модель базы данных, которая не зависит от источника содержащихся в нем данных. Степень полноты модели определяется задачами, которые решает приложение. Объект DataSet может представлять абсолютно точную модель базы данных, и в таком случае эта модель должна будет включать полный набор структурных элементов базы данных, включая таблицы, содержащие данные, с учетом установленных ограничений и отношений между таблицами. Содержащуюся в объекте DataSet информацию можно изменять независимо от источника данных (от самой БД). Соответствующие значения формируются непосредственно в программе и добавляются в таблицы. При работе с базой данных данные могут собираться из разных таблиц, локальное представление которых обеспечивается различными объектами – представителями классов DataSet. В классе DataSetопределено множество перегруженных методов Merge, которые позволяют объединять содержимое нескольких объектов DataSet. Любой объект-представитель класса DataSet позволяет организовать чтение и запись содержимого (теоретически – информации из базы) в файл или область памяти. При этом можно читать и сохранять: • только содержимое объекта (собственно информацию из базы); • только структуру объекта – представителя класса DataSet; • полный образ DataSet (содержимое и структуру). Таким образом, DataSet является основой для построения различных вариантов отсоединенных объектов – хранилищ информации. Класс DataSet – класс не абстрактный и не интерфейс. Это значит, что существует множество вариантов построения отсоединенных хранилищ. На основе базового класса DataSet можно определять производные классы определенной конфигурации, которая соответствует структуре базы данных. Можно также создать объект – представитель класса DataSet оригинальной конфигурации и добавить непосредственно к этому объекту все необходимые составляющие в виде таблиц (объектов – представителей класса Table) соответствующей структуры и множества отношений Relation. Объект – представитель класса DataSet и сам по себе, без сопутствующего окружения, представляет определенную ценность. Дело в том, что информация, представляемая в приложении в виде таблиц, НЕ ОБЯЗЯТЕЛЬНО должна иметь внешний источник в виде реальной базы данных. Ничто не мешает программисту обеспечить в приложении чтение обычного " плоского" файла или даже " накопить" необходимую информацию посредством интерактивного взаимодействия с пользователем, используя при этом обычный диалог. В конце концов, база данных – это один из возможных способов ОРГАНИЗАЦИИ информации (а не только ее хранения! ). Не случайно DataSet представляет ОТСОЕДИНЕННЫЕ данные. На DataSet работают все ранее перечисленные элементы ADO.NET. В свою очередь, в приложении, обеспечивающем взаимодействие с базой данных, объект DataSet функционирует исключительно за счет объекта DataAdapter, который обслуживает DataSet. При этом DataAdapter является центральным компонентом архитектуры отсоединенного доступа.
Пример Создадим базу данных planets.mdb (в формате ACCESS 2003). Структура таблицы PLANET: Заполним таблицу данными Создадим проект в Visual Studio 2012 C#. В обработчике, срабатывающем при загрузке формы, введем код: private void Form1_Load(object sender, EventArgs e) { //Изменяем размеры формы this.Width = 450; this.Height = 400; // Указываем заголовок окна this.Text = " Одностороннее связывание: " + " база данных и элемент Grid."; // Добавляем элементы управления - метку и таблицу Label labelCaption = new Label(); labelCaption.Text = " Планеты солнечной системы! "; labelCaption.Location = new Point(60, 10); labelCaption.Width = 200; labelCaption.Parent = this;
// Добавляем элемент DataGridView на форму DataGridView dataGridView1 = new DataGridView(); dataGridView1.Width = 350; dataGridView1.Height = 250; dataGridView1.Location = new Point(20, 50); dataGridView1.DataMember = " Table"; dataGridView1.AutoResizeColumns(); this.Controls.Add(dataGridView1); // Формируем запрос к базе данных - //запрашиваем информацию о планетах string sql = " SELECT * FROM PLANET"; string connectionString; // DataSet сохраняет данные в памяти //данные хранятся в виде таблиц данных DataTable DataSet dataSet1 = new DataSet(); // Связывание с базой данных Access 2003 - *.mdb connectionString = " Provider=Microsoft.Jet.OLEDB.4.0; " + @" Data Source= planets.mdb"; OleDbConnection connection = new OleDbConnection(connectionString); connection.Open(); OleDbDataAdapter dataAdapter = new OleDbDataAdapter(); dataAdapter.SelectCommand = new OleDbCommand(sql, connection); dataAdapter.Fill(dataSet1); dataGridView1.DataSource = dataSet1; } Вид работающего приложения: Протестируем полученное приложение. В базе данных не сохраняются внесенные изменения (вставка, удаление, корректировка). Можно проделать следующий эксперимент: установить на форме компонент BidingNavigator.
Результат будет такой же – изменения не сохраняются в базе данных.
Текст программы using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.OleDb; namespace _111 { public partial class Form1: Form { public Form1() { InitializeComponent(); }
private void Form1_Load(object sender, EventArgs e) { //Изменяем размеры формы this.Width = 450; this.Height = 400;
// Указываем заголовок окна this.Text = " Одностороннее связывание: " + " база данных и элемент Grid."; // Добавляем элементы управления - метку и таблицу Label labelCaption = new Label(); labelCaption.Text = " Планеты солнечной системы! "; labelCaption.Location = new Point(60, 10); labelCaption.Width = 200; labelCaption.Parent = this;
// Добавляем элемент DataGridView на форму
DataGridView dataGridView1 = new DataGridView(); dataGridView1.Width = 350; dataGridView1.Height = 250; dataGridView1.Location = new Point(20, 50); dataGridView1.DataMember = " Table"; dataGridView1.AutoResizeColumns(); this.Controls.Add(dataGridView1);
// Формируем запрос к базе данных - //запрашиваем информацию о планетах string sql = " SELECT * FROM PLANET"; string connectionString; // DataSet сохраняет данные в памяти //данные хранятся в виде таблиц данных DataTable DataSet dataSet1 = new DataSet();
//Вариант 3. Связывание с базой данных Access 2003 - *.mdb connectionString = " Provider=Microsoft.Jet.OLEDB.4.0; " + @" Data Source= planets.mdb"; OleDbConnection connection = new OleDbConnection(connectionString); connection.Open();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(); dataAdapter.SelectCommand = new OleDbCommand(sql, connection); dataAdapter.Fill(dataSet1); dataGridView1.DataSource = dataSet1; // Очистка connection.Close(); } } }
Задание
Использовать созданную ранее базу данных ACCESS согласно своему варианту задания.
Создать приложение для демонстрации подключения базы данных ACCESS в Visual Studio 2012 C#. Протестировать приложение.
Популярное:
|
Последнее изменение этой страницы: 2016-03-15; Просмотров: 3509; Нарушение авторского права страницы