Табица Exams
Имя поля |
Тип данных |
Свойства |
ExamID |
AutoNumber (первичный ключ) |
Field Size=Long Integer, Increment |
StudID |
Number |
Field Size=Long Integer, Required=Yes |
Course |
Text |
Field Size=50 |
Credit |
Yes/No |
Format=True/False |
MyDate |
Date/Time |
|
Mark |
Number |
Field Size=Byte |
Связь между таблицами имеет следующий вид.
· Поля StudID и ExamID в своих таблицах должны быть полями первичного ключа. Способ определения ключей автоматический. В Access этот тип полей описывается атрибутом Increment, а в SQL Server — IDENTITY.
· Введите в таблицы несколько строк данных и сохраните базу в файле Students.mdb в папке Data проекта.
· Вы можете добавить в проект сам файл Students.mdb. При этом включится мастер Data Source Configuration Wizard и предложит выбрать автоматически генерируемые объекты ADO.NET. Пока они нам не нужны, поэтому нажмите Cancel.
· Создайте обработчик события Load главной формы приложения и вставьте в него код, приведенный ниже:
DataSet ds = new DataSet (); // Создаем главные объекты ADO.NET
OleDbConnection cn = new OleDbConnection ( // Соединение с базой данных
@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=..\..\Data\Students.MDB");
//==== В качестве SQL-команды задаем: "Выбрать все строки табKицы студентов"
OleDbCommand cmd = new OleDbCommand ("SELECT * FROM Studs", cn);
OleDbDataAdapter da = new OleDbDataAdapter (cmd); // Адаптер передает команду провайдеру
try // Попытка открыть таблицу Studs базы Students.MDB и заполнить DataSet
{
da.Fill (ds, "Studs");
}
catch (OleDbException ex)
{
MessageBox.Show (ex.Message);
return;
}
finally
{
if (cn.State == ConnectionState.Open)
cn.Close();
}
gridStud.DataSource = ds; // Complex DataBinding
gridStud.DataMember = ds.Tables[0].TableName;
Если вы аккуратно проделали все указанные действия, то после запуска приложения увидите окно такого вида.
· Схема связи данных OLE DB выполнена по законам технологии COM. Необходимые COM-интерфейсы реализованы классами OleDbConnection, OleDbDataAdapter и OleDbCommand из пространства имен OleDb. Эти классы взаимодействуют с подсистемой OLE DB, и являются удобной оболочкой над соответствующими функциями API. Они позволяют работать с источниками данных различной природы (простые текстовые файлы, файлы электронных таблиц и файлы баз данных).
· Класс OleDbConnection реализует функциональность интерфейса IDbConnection. Другие классы, (например, SqlConnection) реализуют этот же интерфейс, но по-своему. Строка соединения состоит из подстрок, которые образуют пары типа атрибут = значение;.
· При создании объектов типа DbConnection повышенное внимание обращайте на правильность задания файлового пути. Для создания соединения с базами данных по схеме OLE DB в строке соединения необходимо правильно указать тип провайдера (см. Provider =...).
· Свойство ConnectionString позволяет управлять установками соединения даже после создания объекта одного из классов DbConnection. При этом обычно меняют источник данных (Data Source).
· Текст SQL-команды: SELECT * FROM Studs передан конструктору OleDbCommand в качестве параметра. Он позволяет сгенерировать запрос на выбор всех строк таблицы. Ссылка на объект класса OleDbCommand подается на вход конструктора класса OleDbDataAdapter, который выполняет роль проводника между источником данных и их потребителем — объектом ds класса DataSet.
· Классы из категории DbCommand позволяют управлять данными после установления соединения. Они пользуются либо операторами языка SQL, либо готовыми процедурами (stored procedures). Результатом их действия являются таблицы (result sets) или отдельные числа, которые возвращаются в виде потоков (streams). Потоки либо попадают в DataSet (как в нашем случае), либо читаются с помощью объектов DbDataReader . Команды содержат коллекцию параметров (Parameters), которыми можно управлять, уточняя запросы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.