Метод Fill
Мы использовали ранее метод Fill объекта DataAdapter для заполнения данными DataSet, не задумываясь о том, что этот метод является перегруженным. В таблице 12.2 приводится описание различных параметров этого метода:
1 |
Экземпляр DataSet, начальная запись, количество записей, таблица-источник. Пример: dataAdapter.Fill(ds, 0, 5,"Customers") |
2 |
Экземпляр DataSet, таблица-источник. Пример: dataAdapter.Fill(ds, "Customers") |
3 |
Экземпляр DataSet. Пример:dataAdapter.Fill(ds); |
4 |
Экземпляр DataTable. Пример:dataAdapter.Fill(dtCustomers); |
В качестве таблицы-источника указывается название таблицы, извлекаемой из базы данных, - в приведенных примерах таковой является Customers. Создайте новое приложение и назовите его "FillMethod". Получите функциональность приложения ConstructorDА с первым вариантом конструктора: для этого достаточно просто скопировать соответствующие фрагменты кода. Для вывода первых пяти записей таблицы Customers применяем следующий метод Fill объекта DataAdapter:
public Form1() { InitializeComponent(); SqlConnection conn = new SqlConnection(); conn.ConnectionString = connectionString; SqlCommand myCommand = new SqlCommand(); myCommand.Connection = conn; myCommand.CommandText = commandText; SqlDataAdapter dataAdapter = new SqlDataAdapter(); dataAdapter.SelectCommand = myCommand; DataSet ds = new DataSet(); conn.Open(); dataAdapter.Fill(ds, 0, 5,"Customers"); dataGrid1.DataSource = ds.Tables["Customers"].DefaultView; conn.Close(); }
Здесь 0 - индекс первой записи, 5 - число записей. Запускаем приложение. Объект DataAdapter выводит на форму только пять первых записей, отбрасывая все остальные (рис. 12.2):
Рис. 12.2. Вывод заданного количества записей
Тот же самый результат можно было получить, формируя в SQL-запросе (строке commandText) выборку нужных записей. Однако применение DataAdapter является более гибким средством - из всего набора записей, возвращенного запросом, можно при помощи нескольких объектов DataAdapter делать различные выборки.
В программном обеспечении к курсу вы найдете приложение FillMethod (Code\Glava6 FillMethod).