如何:将 Windows 窗体 DataGrid 控件绑定到数据源
注意
DataGridView 控件取代了 DataGrid 控件并添加了功能;但是,可以选择保留 DataGrid 控件以实现向后兼容并供将来使用。 有关详细信息,请参阅 Windows 窗体 DataGridView 控件与 DataGrid 控件之间的区别。
Windows 窗体 DataGrid 控件专门用于显示数据源中的信息。 可以通过调用 SetDataBinding 方法在运行时绑定控件。 尽管可显示来自各种数据源的数据,但最典型的源是数据集和数据视图。
以编程方式对 DataGrid 控件进行数据绑定
编写代码以填充数据集。
如果数据源是基于数据集表的数据集或数据视图,请将代码添加到窗体以填充数据集。
使用的确切代码取决于数据集获取数据的位置。 如果直接从数据库填充数据集,通常调用数据适配器的
Fill
方法,如以下示例所示,该示例填充名为DsCategories1
的数据集:sqlDataAdapter1.Fill(DsCategories1)
sqlDataAdapter1.Fill(DsCategories1);
sqlDataAdapter1->Fill(dsCategories1);
如果数据集是从 XML Web 服务填充的,则通常会在代码中创建服务的实例,然后调用其中一个方法来返回数据集。 然后将 XML Web 服务中的数据集合并到本地数据集中。 以下示例显示了如何创建名为
CategoriesService
的 XML Web 服务实例,以及如何调用其GetCategories
方法,并将生成的数据集合并到名为DsCategories1
的本地数据集:Dim ws As New MyProject.localhost.CategoriesService() ws.Credentials = System.Net.CredentialCache.DefaultCredentials DsCategories1.Merge(ws.GetCategories())
MyProject.localhost.CategoriesService ws = new MyProject.localhost.CategoriesService(); ws.Credentials = System.Net.CredentialCache.DefaultCredentials; DsCategories1.Merge(ws.GetCategories());
MyProject::localhost::CategoriesService^ ws = new MyProject::localhost::CategoriesService(); ws->Credentials = System::Net::CredentialCache::DefaultCredentials; dsCategories1->Merge(ws->GetCategories());
调用 DataGrid 控件的 SetDataBinding 方法,将数据源和数据成员传递给它。 如果不需要显式传递数据成员,请传递一个空字符串。
注意
如果是第一次绑定网格,可以设置控件的 DataSource 和 DataMember 属性。 但是,这些属性设置后,就无法重置。 因此,建议始终使用 SetDataBinding 方法。
以下示例显示了如何以编程方式绑定到名为
DsCustomers1
的数据集中的 Customers 表:DataGrid1.SetDataBinding(DsCustomers1, "Customers")
DataGrid1.SetDataBinding(DsCustomers1, "Customers");
dataGrid1->SetDataBinding(dsCustomers1, "Customers");
如果 Customers 表是数据集中唯一的表,则也可以通过以下方式绑定网格:
DataGrid1.SetDataBinding(DsCustomers1, "")
DataGrid1.SetDataBinding(DsCustomers1, "");
dataGrid1->SetDataBinding(dsCustomers1, "");
(可选)将适当的表格样式和列样式添加到网格中。 如果没有表格样式,你将看到表格,但是格式很简单,所有列都是可见的。