Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Console.WriteLine(com.CommandText);

SqlDataAdapter MyAdap = new SqlDataAdapter(com.CommandText, cn);

MyAdap.Fill(MyDS,"Turfirma");

//////////////////////////////////////////////////////

Console.WriteLine(" Данные DataSet: ");

Console.WriteLine("Таблицы в DataSet:" + MyDS.DataSetName);

//Вывод имени DataSet и расширенных свойств:

foreach (System.Collections.DictionaryEntry de in MyDS.ExtendedProperties)

Console.WriteLine("Ключ " + de.Key + ", значение " + de.Value);

Console.WriteLine();

//Вывод каждой таблицы:

foreach (DataTable dt in MyDS.Tables)

{

Console.WriteLine("Таблица:" + dt.TableName);

//Вывод имен столбцов:

for (int curCol = 0; curCol < dt.Columns.Count; curCol++)

Console.Write(dt.Columns[curCol].ColumnName.Trim() + "\t");

Console.WriteLine("\n--------------------------------------------");

//Вывод содержимого DataTable:

for (int curRow = 0; curRow < dt.Rows.Count; curRow++)

{

for (int curCol = 0; curCol < dt.Columns.Count; curCol++)

Console.Write(dt.Rows[curRow][curCol].ToString().Trim() + "\t");

Console.WriteLine();

}

}

MyDS.Clear();

Обновление БД с пом адаптера данных. Адаптеры данных могут не только заполнять табл объекта DataSet, но и поддерживать набор объектов осн SQL-команд, используя их для возвращения модифицирован данных обратно в хранилище данных. При вызове метода Update() адаптера данных проверяется св-во RowState для каждой строки в DataTable и использ соответств команды, присвоенные св-вам DeleteCommand, InsertCommand и UpdateCommand адаптера, чтобы записать изменения данного DataTable в источник данных.

При использ адаптера данных для обновления DataSet необход назначить св-вам DeleteCommand, InsertCommand и UpdateCommand действительные (конкретной таблицы БД) объекты команд, а иначе свойства возвратят null.

Добавим новую строку в таблицу «Туристы»:

Console.WriteLine("Обновление базы данных BDTurfirm с помощью объекта адаптера данных:");

Console.WriteLine("Введите информацию о новом туристе! Код туриста++");

int kd = Int32.Parse(Console.ReadLine());

Console.WriteLine("Фамилия?");

string fm = Console.ReadLine();

Console.WriteLine("Имя?");

string nm = Console.ReadLine();

Console.WriteLine("Отчество?");

string otc = Console.ReadLine();

string sql = string.Format("Insert Into Туристы" + "([Код туриста],Фамилия,Имя,Отчество) Values" + "('{0}','{1}','{2}','{3}')",kd, fm, nm, otc);

MyAdap.InsertCommand = new SqlCommand(sql);

MyAdap.InsertCommand.Connection = cn;

// Обновление таблицы Туристы с учетом новой сроки:

DataRow rn =MyDS.Tables["Туристы"].NewRow();

Console.WriteLine("Состояние строки " + rn.RowState);

rn["Код туриста"] = kd;

rn["Фамилия"] = fm;

rn["Имя"] = nm;

rn["Отчество"] = otc;

MyDS.Tables["Туристы"].Rows.Add(rn);

Console.WriteLine("Состояние строки " + rn.RowState); MyAdap.Update(MyDS.Tables["Туристы"]);

После создания объекта команды он «подключается» к адаптеру с пом св-ва InsertCommand. Затем в табл «Туристы» добавляется новая строка и адаптер выполнит SQL-команду, так как св-во новой строки RowState – Added.

Модифицируем выбранную строку таблицы «Туристы»:

//////////////////////////////////////////////////////////

Console.WriteLine("Модификация строки!");

Console.WriteLine("Введите код туриста для выбора строки!");

int kdd = Int32.Parse(Console.ReadLine()); Console.WriteLine("Введите новую фамилию туриста для выбранной строки!");

string nfam = Console.ReadLine();

string ssql = string.Format("Update Туристы Set Фамилия ='{0}' where [Код туриста]={1}",nfam,kdd);

MyAdap.UpdateCommand = new SqlCommand(ssql);

MyAdap.UpdateCommand.Connection = cn;

DataRow [] mas_rows = MyDS.Tables["Туристы"].Select(string.Format("[Код_туриста]={0}",kdd));

mas_rows[0]["Фамилия"] = nfam;

// Метод Select выбирает строку и помещает ее в массив объектов DataRow. Нужно указать какую именно строку меняем – mas_rows[0.

Параметр метода Select явл строкой, к-ая содержит некот условное выражение.

Console.WriteLine("Состояние строки " + mas_rows[0].RowState);

MyAdap.Update(MyDS.Tables["Туристы"]);

Console.WriteLine("Состояние строки " + mas_rows[0].RowState);

Удалим указанную строку таблицы «Туристы»:

Console.WriteLine("Удаление строки!");

Console.WriteLine("Введите код туриста для удаления строки!");

int cd = Int32.Parse(Console.ReadLine());

string ql = string.Format("Delete from Туристы where [Код туриста]={0}",cd);

Console.WriteLine("Команда удаления " + ql);

SqlCommand cmd = new SqlCommand(ql,cn);

MyAdap.DeleteCommand = cmd;

string fltr = string.Format("[Код туриста]={0}", cd);

DataRow[] mas = MyDS.Tables["Туристы"].Select(fltr);

mas[0].Delete();

Console.WriteLine("Состояние строки " + mas[0].RowState);

MyAdap.Update(MyDS.Tables["Туристы"]);

Console.WriteLine("Состояние строки " + mas[0].RowState);

MyDS.Clear();


 

Вопросы к экзамену по учебной дисциплине

«Современные технологии программирования»

1. Организация C#-системы ввода-вывода: байтовые и символьные потоки. Встроенные потоки.

2. Классы потоков. Класс Stream. Классы байтовых потоков. Классы символьных потоков. Классы двоичных потоков.

3. Класс FileStream и файловый ввод-вывод на побайтовой основе. Открытие и закрытие файла. Запись данных в файл. Считывание байтов из объекта класса FileStream.

4. Файловый ввод-вывод с ориентацией на символы. Использование класса StreamWriter. Использование класса StreamReader.

5. Считывание и запись двоичных данных. Класс BinaryWriter. Класс BinaryReader.

6. Навигация по файловой системе: классы для работы с файловой системой.

7. Получение сведений о файле; копирование файлов; перечисление файлов в папке; изменение расширения файлов.

8. Основы организации потоков. Потоки и многозадачность. Пространство имен System.Threading. Класс Thread. Создание потока.

9. Использование нескольких потоков. Планирование потоков, приоритеты потоков.

10. Проблемы одновременности и синхронизации потоков. Общий доступ к данным из разных потоков, предотвращение коллизий.

11. Синхронизация доступа к общим данным с помощью блокировок. Управление временем существования потоков.

12. Краткий обзор ADO.NET. Три стороны технологии ADO.NET. Пространство имен System.Data.

13. Поставщики данных ADO.NET. Поведение объектов подключения.

14. Объектная модель ADO.NET.

15. Краткий обзор объектов ADO.NET.

16. Создание соединения с источником данных. Члены типа DBConnection. Обработка исключений при работе с MS SQL

17. Работа с базой данных с помощью SQL-запросов. Класс SqlCommand. Объект Command. Создание и инициализация. Командная строка SQL-запроса CommandText.

18. Выборка, добавление, удаление и обновление данных с помощью SQL-запросов на подсоединенном уровне.

19. Вывод информации с использованием объекта чтения данных: создание SqlDataReader; чтение данных из DataReader; чтение полей из текущей записи; закрытие DataReader.

20. Организация хранения данных. Объект DataSet.

21. Таблицы и поля: объекты DataTable и DataColumn.

22. Строки: объект DataRow.

23. Связи между таблицами: объект DataRelation.

24. Создание подключения к базе данных. Управляемые провайдеры.

25. Объект DataAdapter. Класс SqlDataAdapter. Передача данных между источником данных и объектом DataSet. Обновление базы данных с помощью адаптера данных.

 




Дата добавления: 2015-09-10; просмотров: 81 | Поможем написать вашу работу | Нарушение авторских прав

Краткий обзор ADO.NET. Три стороны технологии ADO.NET. Пространство имен System.Data. | Поставщики данных ADO.NET. Поведение объектов подключения. | Объектная модель ADO.NET | Краткий обзор объектов ADO .NET. | События | Свойства | Выборка, добавление, удаление и обновление данных с помощью SQL-запросов на подсоединенном уровне. | Организация хранения данных. Объект DataSet | Основные члены типа DataTable | Создание подключения к базе данных. Управляемые провайдеры |


lektsii.net - Лекции.Нет - 2014-2025 год. (0.01 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав