Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка приложений баз данных (Visual Studio 2008).docx
Скачиваний:
143
Добавлен:
26.03.2016
Размер:
1.01 Mб
Скачать

Как привязать объект DataView к элементу управления Windows Forms DataGridView

Элемент управления DataGridViewявляется мощным и гибким средством отображения данных в формате таблицы. Элемент управленияDataGridViewподдерживает стандартную модель привязки данных Windows Forms, поэтому он выполняет привязку кDataViewи другим различным источникам данных. Однако в большинстве случаев выполняется привязка к компонентуBindingSource, управляющему взаимодействием с источником данных.

Дополнительные сведения об элементе управления DataGridViewсм. в разделеОбщие сведения об элементе управления DataGridView (Windows Forms).

Соединение элемента управления DataGridView с объектом DataView

  1. Реализуйте метод, обрабатывающий получение данных из базы данных. В следующем примере реализован метод GetData, инициализирующий компонентSqlDataAdapterи использующий его для заполнения объектаDataSet. Убедитесь, что переменной connectionString присвоено значение, соответствующее базе данных. Потребуется доступ к SQL Server с установленным образцом базы данных AdventureWorks.

C#

private void GetData()

{

try

{

// Initialize the DataSet.

dataSet = new DataSet();

dataSet.Locale = CultureInfo.InvariantCulture;

// Create the connection string for the AdventureWorks sample database.

string connectionString = "Data Source=localhost;Initial Catalog=AdventureWorks;"

+ "Integrated Security=true;";

// Create the command strings for querying the Contact table.

string contactSelectCommand = "SELECT ContactID, Title, FirstName, LastName, EmailAddress, Phone FROM Person.Contact";

// Create the contacts data adapter.

contactsDataAdapter = new SqlDataAdapter(

contactSelectCommand,

connectionString);

// Create a command builder to generate SQL update, insert, and

// delete commands based on the contacts select command. These are used to

// update the database.

SqlCommandBuilder contactsCommandBuilder = new SqlCommandBuilder(contactsDataAdapter);

// Fill the data set with the contact information.

contactsDataAdapter.Fill(dataSet, "Contact");

}

catch (SqlException ex)

{

MessageBox.Show(ex.Message);

}

}

  1. В обработчике событий Loadформы привяжите элемент управленияDataGridViewк компонентуBindingSourceи вызовите методGetDataдля получения данных из базы данных. ОбъектDataViewсоздается на основе запроса LINQ to DataSet к объектуDataTableс именем Contact, а затем привязывается к компонентуBindingSource.

C#

private void Form1_Load(object sender, EventArgs e)

{

// Connect to the database and fill the DataSet.

GetData();

contactDataGridView.DataSource = contactBindingSource;

// Create a LinqDataView from a LINQ to DataSet query and bind it

// to the Windows forms control.

EnumerableRowCollection<DataRow> contactQuery = from row in dataSet.Tables["Contact"].AsEnumerable()

where row.Field<string>("EmailAddress") != null

orderby row.Field<string>("LastName")

select row;

contactView = contactQuery.AsDataView();

// Bind the DataGridView to the BindingSource.

contactBindingSource.DataSource = contactView;

contactDataGridView.AutoResizeColumns();

}