Пример программы 4.2
Листинг 4.1.
В этой программе на экран выводится несколько столбцов данных. Для их представления мы воспользуемся элементом DataGridView.
Программа выполняет тот же запрос, что и в предыдущем примере, но помещает результат в объект DataSet, который подключается к элементу управления DataGridView, а тот автоматически отображает все данные.
Подключение источника данных к визуальному элементу управления называется привязкой, или связыванием данных.
using System.Windows.Forms;
using System.Data;
// Пространство имен для работы с базами данных SQL Server
using System.Data.SqlClient;
using System.Drawing;
// Пространство имен для работы с базами данных Access
using System.Data.OleDb;
class DataInGrid : Form
{
public DataInGrid()
{
//Изменяем размеры формы
this.Width = 450;
this.Height = 400;
// Указываем заголовок окна
this.Text = "Одностороннее связывание:" +
" база данных и элемент Grid.";
// Добавляем элементы управления - метку и таблицу
Label labelCaption = new Label();
labelCaption.Text = "Планеты солнечной системы!";
labelCaption.Location = new Point(60, 10);
labelCaption.Width = 200;
labelCaption.Parent = this;
// Добавляем элемент DataGridView на форму
DataGridView dataGridView1 = new DataGridView();
dataGridView1.Width = 350;
dataGridView1.Height = 250;
dataGridView1.Location = new Point(20, 50);
dataGridView1.DataMember = "Table";
dataGridView1.AutoResizeColumns();
this.Controls.Add(dataGridView1);
// Формируем запрос к базе данных -
//запрашиваем информацию о планетах
string sql = "SELECT * FROM PLANET";
string connectionString;
// DataSet сохраняет данные в памяти
//данные хранятся в виде таблиц данных DataTable
DataSet dataSet1 = new DataSet();
/*
//Вариант 1
// Подключаемся к базе данных SQL Server Express Edition
// Указываем физический путь к базе данных PLANETS
string dbLocation =
("../../../databases/planets.mdf");
connectionString = @"data source=.\SQLEXPRESS;" +
"User Instance=true;Integrated Security=SSPI;" +
"AttachDBFilename=" + dbLocation;
SqlConnection connection1 = new SqlConnection(connectionString);
*/
/*
//Вариант 2
// Подключаемся к базе данных SQL Server 2005
connectionString =
"data source = localhost; Initial Catalog = Planets;" +
"Integrated Security = SSPI";
SqlConnection connection1 = new SqlConnection(connectionString);
//Открываем соединение
connection1.Open();
// DataAdapter - посредник между базой данных и DataSet
SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter();
// Создаем объект DataAdapter,
//передаем ему данные запроса
sqlDataAdapter1.SelectCommand =
new SqlCommand(sql, connection1);
// Данные из адаптера поступают в DataSet
sqlDataAdapter1.Fill(dataSet1);
// Связываем данные с элементом DataGridView
DataGridView1.DataSource = dataSet1;
// Очистка
connection1.Close();
* */
/*
//Вариант 3. Связывание с базой данных Access 2003 - *.mdb
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data Source= ../../../databases/planets.mdb";
*/
//Вариант 4. Связывание с базой данных Access 2007 - *.accdb
connectionString = "Provider=Microsoft.Ace.OLEDB.12.0;" +
@"Data Source= ../../../databases/planets.accdb";
OleDbConnection connection = new OleDbConnection(connectionString);
connection.Open();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
dataAdapter.SelectCommand = new OleDbCommand(sql, connection);
dataAdapter.Fill(dataSet1);
dataGridView1.DataSource = dataSet1;
// Очистка
connection.Close();
}
static void Main()
{
// Создаем и запускаем форму
Application.Run(new DataInGrid());
}
}