- •Системы оперативной обработки транзакций
- •Традиционные экспертные системы
- •Информационные хранилища
- •Многомерные базы данных
- •Системы оперативной аналитической обработки данных
- •Трактовка терминов: “Информационно-поисковая система”, “Информационно-справочная система”, ”База знаний”. Понятие поискового образа объекта ипс и связь его с базой данных.
- •Архитектуры приложений баз данных. Локальное приложение. Информационная система с архитектурой “файл - сервер”. Информационная система с архитектурой “клиент-сервер”.
- •Понятие о сервере баз данных. Общие сведения о sql-серверах на примере ms sql Server 2008. Понятие об администрировании сервером. Основные сведения об утилитах администрирования sql-сервером.
- •Архитектура ado.Net.
- •Общие сведения о подключении к данным в Visual Studio.
- •Строки подключения
- •Установка соединения посредством кода в ado.Net
- •Подключения на этапе разработки в обозревателе серверов/обозревателе баз данных
- •Уровни объектной модели ado.Net
- •Хранение данных в наборах данных. Создание набора данных
- •Взаимодействие с базой данных через объект DataSet
- •Общие сведения об адаптере таблиц
- •Общие сведения об объекте DataTableReader
- •Мастер настройки источников данных
- •Конструктор наборов данных
- •Связанные таблицы и объекты DataRelation
- •Заполнение набора данных
- •Редактирование данных в приложении
- •Общие сведения о сохранении данных
- •Представление объекта DataTable
- •Технология linq.
- •Введение в запросы linq.
- •Linq to sql. Создание проекта linq.
- •Linq to sql. Три части операции запроса.
- •Linq to sql. Синтаксис запроса и метода.
- •Linq to DataSet. Общие сведения о linq to DataSet.
- •Linq to DataSet. Запросы к одиночным таблицам.
- •Linq to DataSet. Универсальные методы Field и SetField.
- •Понятие метаданных и способы их представления в структурах данных. Основные сведения о представлении знаний. Сравнительное определение терминов “Знание” и “Информация”.
- •Нелинейные структуры данных. Общие понятия о деревьях.
- •Представление сетевых структур.
- •Методы реализации древовидных и сетевых структур в реляционных субд.
- •Дескрипторная компонента проектной среды поддержки принятия решений в сапр. Реализация дескрипторной компоненты средствами реляционных субд.
- •– 41. Классификационная компонента проектной среды принятия решений в сапр. Обоснование необходимости присутствия классификационной компоненты в информационных системах сапр.
- •Продукционная компонента проектной среды принятия решений в сапр.
- •Компонента структурных объектов проектной среды принятия решений в сапр. Общее понятие о методах реализации структурной компоненты в информационных системах сапр.
- •Представление инженерных знаний в форме информационно-логических таблиц (илт).
- •Справочные таблицы без условий. Реляционное представление справочных таблиц без условий.
- •Справочные таблицы с условиями. Реляционное представление справочных таблиц с условиями.
Редактирование данных в приложении
Редактирование строк в объекте DataTable
Чтобы изменить существующую строку в таблице DataTable, необходимо найти строку DataRow, которую требуется изменить и затем присвоить обновленные значения нужным столбцам.
Поиск строки в типизированном наборе данных по известному значению первичного ключа
Большинство приложений, получающих данные, нуждаются в доступе к отдельным записям, которые отвечают некоторым критериям. Чтобы найти конкретную строку в наборе данных по значению первичного ключа, вызовите метод Find объекта DataRowCollection, который получает указанный объект DataRow:
Чтобы найти строку в нетипизированном наборе данных по известному значению первичного ключа следует вызвать метод Find из коллекции DataRowCollection, передав первичный ключ в качестве параметра.
В следующем примере показано, как объявить новую строку с именем foundRow и присвоить ей возвращаемое значение метода Find. Если первичный ключ найден, содержимое индекса столбца 1 отображается в окне сообщения.
Язык C#
string s = "primaryKeyValue";
DataRow foundRow = dataSet1.Tables["AnyTable"].Rows.Find(s);
if (foundRow != null)
{
MessageBox.Show(foundRow[1].ToString());
}
else
{
MessageBox.Show("A row with the primary key of " + s + " could not be found");
}
Редактирование записей в типизированном наборе данных (индекс строки неизвестен)
бычно, мы не знаем индекс строки, которую необходимо изменить. В типизированных наборах применяется метод FindBy, который использует первичный ключ таблицы для поиска строки.
С помощью метода FindBy нужно присвоить определенной переменной значение найденного объекта DataRow и затем использовать эту переменную для доступа к столбцам, которые требуется изменить и присвоить им новые значения.
В следующем примере столбец CustomerID является первичным ключом таблицы Customers, поэтому метод FindBy генерируется как FindByCustomerID. В этом примере "ALFKI" - искомое значение первичного ключа.
NorthwindDataSet.CustomersRow customersRow =
northwindDataSet1.Customers.FindByCustomerID("ALFKI");
customersRow.CompanyName = "Updated Company Name";
customersRow.City = "Seattle";
Редактирование записей в нетипизированных наборах данных (индекс строки неизвестен)
Для обнаружения определенной строки и присвоения новых значений нужным столбцам следует использовать метод Select объекта DataTable.
В следующем примере столбец CustomerID является первичным ключом таблицы Customers, поэтому вызов метода Select и поиск по первичному ключу вернет единственную строку. Возвращаемый тип по-прежнему представляет собой массив строк DataRow, поэтому мы получаем доступ по индексу (0), или обращаемся к первой строке в массиве.
DataRow[] customerRow =
dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'");
customerRow[0]["CompanyName"] = "Updated Company Name";
customerRow[0]["City"] = "Seattle";
Редактирование строки в DataTable по известому индексу строки в типизированном наборе
Чтобы обновить существующие записи в типизированных наборах данных (индекс строки известен) присвойте значение определенному столбцу в объекте DataRow. Типизированные наборы данных используют раннюю привязку, которая предоставляет имена таблиц и столбцов в виде свойств в режиме разработки. Результатом этого становится более легкий для чтения и записи код. В следующем примере показано обновление данных в столбцах CompanyName и City пятой записи таблицы Customers в наборе данных:
northwindDataSet1.Customers[4].CompanyName = "Updated Company Name";
northwindDataSet1.Customers[4].City = "Seattle";
Редактирование строки в DataTable по известому индексу строки в нетипизированном наборе
Чтобы обновить существующие записи в нетипизированных наборах данных (индекс строки известен), присвойте значение определенному столбцу в объекте DataRow. Имена таблиц и столбцов нетипизированных наборов данных недоступны в режиме разработки, поэтому к ним нужно обращаться посредством их соответствующих индексов. В следующем примере показано обновление данных в первых двух столбцах пятой записи первой таблицы в Dataset1, доступ к значениям таблиц, строк и индексов коллекции элементов (столбцов): dataSet1.Tables[0].Rows[4].ItemArray[0] = "Updated Company Name"; dataSet1.Tables[0].Rows[4].ItemArray[1] = "Seattle"; В следующем примере показано, как обновлять те же данные, что и в предыдущем примере, заменяя индексы коллекции в таблице и передавая имена столбцов в виде строк. По-прежнему необходимо знать индекс строки, которую необходимо изменить: dataSet1.Tables["Customers"].Rows[4]["CompanyName"] = "Updated Company Name"; dataSet1.Tables["Customers"].Rows[4]["City"] = "Seattle";
Удаление строк из объекта DataTable
Для сохранения сведений, необходимых набору данных для обновления источника данных, используется метод Delete, который удаляет строки в таблице данных. Например, если приложение использует TableAdapter (или DataAdapter), метод адаптера Update будет удалять строки в базе данных, имеющие RowState, равный Deleted.
Если приложению не требуется отсылать обновления обратно к источнику данных, можно удалить записи, обращаясь к коллекции строк данных напрямую (Remove).
Чтобы удалить записи из таблицы данных, выполните следующие действия:
Для типизированных наборов вызовите метод Delete объекта DataRow.
Данный метод не удаляет записи физически; вместо этого он помечает записи для удаления.
Примечание. Если получено свойство count объекта DataRowCollection, в итоговом результате будут присутствовать записи, помеченные для удаления. Для получения точного количества только тех записей, которые не были помечены для удаления, можно просмотреть свойства RowState каждой записи в коллекции (записи, отмеченные для удаления, имеют RowState, равный Deleted). Также можно создать представление данных набора данных, которое выполнит фильтрацию на основе состояния строки и получит свойство count непосредственно оттуда.
В следующем примере показано, как вызывать метод Delete, помечающий как удаленную первую строку в таблице Customers:
northwindDataSet1.Customers.Rows[0].Delete();
Для нетипизированных наборов данных используйте код, аналогичный приведенному ниже:
dataSet1.Tables["Customers"].Rows[0].Delete
