Заполнение данных из нескольких запросов в один и тот же источник данных
Автор:Eve Cole
Время обновления:2009-07-01 16:14:59
DataSet часто используется в качестве источника данных элемента управления при написании кода. Обычно элемент управления может быть привязан только к одному источнику данных. Если вы хотите привязать результаты нескольких запросов к базе данных к элементу управления, вам необходимо поместить результаты нескольких запросов в один и тот же источник данных. Конечно, эту функцию можно реализовать и путем динамического рисования таблиц, но мне кажется, что динамическая обработка таблиц слишком хлопотна. Для этой цели был проведен следующий тест, и он прошел успешно. Сейчас я поделюсь им.
Принцип: Заполните результаты нескольких запросов в одну и ту же таблицу одного и того же набора данных, но при двукратном заполнении поля должны иметь один и тот же псевдоним, иначе появятся ненужные NULL-строки.
Код выглядит следующим образом:
1частная недействительная обработка данных()
2 {
3 строки sql1="выберите xqid как yhm, xqmc как zsxm из xt_xq";//
4 строки sql2="выберите xt_zdb_style как yhm, описание как zsxm из xt_zdb";//sql1 и sql2 используют одни и те же псевдонимы полей yhm и zsxm
5 с использованием (Соединение OracleConnection = новое OracleConnection("Источник данных=abeen;Идентификатор пользователя=система;Пароль=abeen;"))
6 {
7 DataSet ds = новый DataSet();
8 попробовать
9 {
10 соединение.Открыть();
11 команда OracleDataAdapter = новый OracleDataAdapter(sql2,connection);
12 команда.Fill(ds,0,5,"TableName");//Заполняем данные в TableName в первый раз
13 команда = новый OracleDataAdapter (sql1, соединение);
14 command.Fill(ds,"TableName");//Заполняем данные в TableName во второй раз
15
16 this.DataGrid1.DataSource=ds;//Результаты двух заполнений находятся в TableName ds
17 this.DataGrid1.DataBind();
18}
19 catch(System.Data.OracleClient.OracleException ex)
20 {
21 выдать новое исключение (например, сообщение);
двадцать два }
двадцать три
двадцать четыре }
25}
http://www.cnblogs.com/abeen/archive/2006/11/21/567893.html