DataColumnMapping 类
[C#]
public sealed class DataColumnMapping : MarshalByRefObject,
IColumnMapping, ICloneable备注
DataColumnMapping 允许在 DataTable 和数据源中使用不同的列名。当 DataSet 或数据源中的表更新时,DataAdapter 使用该映射匹配列。有关更多信息,请参见设置 DataTable 和 DataColumn 映射。[C#] public void AddDataColumnMapping() {
// ...
// create myColumnMappings
// ...
DataColumnMapping myNewMapping =
new DataColumnMapping("Description","DataDescription");
myColumnMappings.Add((Object) myNewMapping);
MessageBox.Show("column " + myNewMapping.ToString() + " added to " +
"column mapping collection " + myColumnMappings.ToString());
}
设置 DataTable 和 DataColumn 映射DataAdapter 在其 TableMappings 属性中包含零个或更多个 DataTableMapping 对象的集合。DataTableMapping 提供对数据源的查询所返回的数据与 DataTable 之间的主映射。DataTableMapping 名称可以代替 DataTable 名称传递到 DataAdapter 的 Fill 方法。以下示例为 MyAuthors 表创建名为 AuthorsMapping 的 DataTableMapping。[Visual Basic]
workAdapter.TableMappings.Add("AuthorsMapping", "MyAuthors")[C#]
workAdapter.TableMappings.Add("AuthorsMapping", "MyAuthors");DataTableMapping 使您能够使用 DataTable 中与数据库中的列名不同的列名。当该表被更新时,DataAdapter 将使用此映射来匹配列。如果在调用 DataAdapter 的 Fill 或 Update 方法时未指定 TableName 或 DataTableMapping 名称,DataAdapter 将查找名为“Table”的 DataTableMapping。如果 DataTableMapping 不存在,DataTable 的 TableName 将为“Table”。可以通过创建名为“Table”的 DataTableMapping 来指定默认的 DataTableMapping。以下代码示例创建一个 DataTableMapping(从 System.Data.Common 命名空间)并通过将其命名为“Table”来使其成为指定 DataAdapter 的默认映射。然后,该示例将查询结果中第一个表(Northwind 数据库的 Customers 表)中的列映射到 DataSet 的 Northwind Customers 表中的一组更为用户友好的名称。对于未映射的列,将使用数据源中的列名称。[Visual Basic]
Dim custMap As DataTableMapping = custDA.TableMappings.Add("Table", "NorthwindCustomers")
custMap.ColumnMappings.Add( "CompanyName", "Company")
custMap.ColumnMappings.Add( "ContactName", "Contact")
custMap.ColumnMappings.Add( "PostalCode", "ZIPCode")custDA.Fill(custDS)[C#]
DataTableMapping custMap = custDA.TableMappings.Add("Table", "NorthwindCustomers");
custMap.ColumnMappings.Add( "CompanyName", "Company");
custMap.ColumnMappings.Add( "ContactName", "Contact");
custMap.ColumnMappings.Add( "PostalCode", "ZIPCode");custDA.Fill(custDS);在更为复杂的情况下,您可能会决定需要使用相同的 DataAdapter 来支持为不同的表加载不同的映射。若要完成此任务,只需添加附加的 DataTableMapping 对象。当 Fill 方法以 DataSet 实例和 DataTableMapping 名称的形式进行传递时,如果存在具有该名称的映射,则使用该映射;否则将使用具有该名称的 DataTable。
[C#]
public sealed class DataColumnMapping : MarshalByRefObject,
IColumnMapping, ICloneable备注
DataColumnMapping 允许在 DataTable 和数据源中使用不同的列名。当 DataSet 或数据源中的表更新时,DataAdapter 使用该映射匹配列。有关更多信息,请参见设置 DataTable 和 DataColumn 映射。[C#] public void AddDataColumnMapping() {
// ...
// create myColumnMappings
// ...
DataColumnMapping myNewMapping =
new DataColumnMapping("Description","DataDescription");
myColumnMappings.Add((Object) myNewMapping);
MessageBox.Show("column " + myNewMapping.ToString() + " added to " +
"column mapping collection " + myColumnMappings.ToString());
}
设置 DataTable 和 DataColumn 映射DataAdapter 在其 TableMappings 属性中包含零个或更多个 DataTableMapping 对象的集合。DataTableMapping 提供对数据源的查询所返回的数据与 DataTable 之间的主映射。DataTableMapping 名称可以代替 DataTable 名称传递到 DataAdapter 的 Fill 方法。以下示例为 MyAuthors 表创建名为 AuthorsMapping 的 DataTableMapping。[Visual Basic]
workAdapter.TableMappings.Add("AuthorsMapping", "MyAuthors")[C#]
workAdapter.TableMappings.Add("AuthorsMapping", "MyAuthors");DataTableMapping 使您能够使用 DataTable 中与数据库中的列名不同的列名。当该表被更新时,DataAdapter 将使用此映射来匹配列。如果在调用 DataAdapter 的 Fill 或 Update 方法时未指定 TableName 或 DataTableMapping 名称,DataAdapter 将查找名为“Table”的 DataTableMapping。如果 DataTableMapping 不存在,DataTable 的 TableName 将为“Table”。可以通过创建名为“Table”的 DataTableMapping 来指定默认的 DataTableMapping。以下代码示例创建一个 DataTableMapping(从 System.Data.Common 命名空间)并通过将其命名为“Table”来使其成为指定 DataAdapter 的默认映射。然后,该示例将查询结果中第一个表(Northwind 数据库的 Customers 表)中的列映射到 DataSet 的 Northwind Customers 表中的一组更为用户友好的名称。对于未映射的列,将使用数据源中的列名称。[Visual Basic]
Dim custMap As DataTableMapping = custDA.TableMappings.Add("Table", "NorthwindCustomers")
custMap.ColumnMappings.Add( "CompanyName", "Company")
custMap.ColumnMappings.Add( "ContactName", "Contact")
custMap.ColumnMappings.Add( "PostalCode", "ZIPCode")custDA.Fill(custDS)[C#]
DataTableMapping custMap = custDA.TableMappings.Add("Table", "NorthwindCustomers");
custMap.ColumnMappings.Add( "CompanyName", "Company");
custMap.ColumnMappings.Add( "ContactName", "Contact");
custMap.ColumnMappings.Add( "PostalCode", "ZIPCode");custDA.Fill(custDS);在更为复杂的情况下,您可能会决定需要使用相同的 DataAdapter 来支持为不同的表加载不同的映射。若要完成此任务,只需添加附加的 DataTableMapping 对象。当 Fill 方法以 DataSet 实例和 DataTableMapping 名称的形式进行传递时,如果存在具有该名称的映射,则使用该映射;否则将使用具有该名称的 DataTable。
解决方案 »
- C/S软件中, 发布客户端补丁时, 怎么避开客户更新高峰?
- datagridview控件
- 调用存储过程里的output参数问题
- C#是否应该考虑用var作为返回值?
- 关于比较两个DataTable中的内容
- 一个很怪的CASE句子问题
- 运行到 OleDbDataAdapter .Fill( ds ,"a" );发生异常 谢谢
- 用C#创建一个excel2010工作薄,想把sqlserver数据库中的一个表内容放到sheet1中,应该怎样实现?
- 你对c#的认识是什么?
- emguCv 调用SetCaptureProperty(CapProp.PosFrames, Pos)出错~!
- 权威测试,大家请进!
- C#做出的DLL怎样才能由HTM调用
datagrid里显示的是中文列:
帐号管理_Connection.Open();
System.Data.Common.DataTableMapping custMap = 帐号管理_Adapter.TableMappings.Add("帐号管理", "admin_info");
custMap.ColumnMappings.Add("帐号","admin_name");
custMap.ColumnMappings.Add("密码","admin_pass");
custMap.ColumnMappings.Add("等级","admin_class");帐号管理_Adapter.Fill(帐号管理_dataSet,"帐号管理");
帐号管理_Connection.Close();
table = 帐号管理_dataSet.Tables["admin_info"];
view = new DataView(table);
帐号管理_dataSet.Tables["admin_info"].Columns["admin_int"].ColumnMapping = MappingType.Hidden;//隐藏"admin_int"列
/*
更改列名
*/
帐号管理_dataSet.Tables["admin_info"].Columns["admin_name"].ColumnName = "帐号";
帐号管理_dataSet.Tables["admin_info"].Columns["admin_pass"].ColumnName = "密码";
帐号管理_dataSet.Tables["admin_info"].Columns["admin_class"].ColumnName = "等级";
dataGrid1.DataSource = view;//绑定数据源
datagrid里显示的是中文列:
帐号管理_Connection.Open();
System.Data.Common.DataTableMapping custMap = 帐号管理_Adapter.TableMappings.Add("帐号管理", "admin_info");
custMap.ColumnMappings.Add("帐号","admin_name");
custMap.ColumnMappings.Add("密码","admin_pass");
custMap.ColumnMappings.Add("等级","admin_class");帐号管理_Adapter.Fill(帐号管理_dataSet,"帐号管理");
帐号管理_Connection.Close();
table = 帐号管理_dataSet.Tables["admin_info"];
view = new DataView(table);
帐号管理_dataSet.Tables["admin_info"].Columns["admin_int"].ColumnMapping = MappingType.Hidden;//隐藏"admin_int"列
/*
更改列名
*/
帐号管理_dataSet.Tables["admin_info"].Columns["admin_name"].ColumnName = "帐号";
帐号管理_dataSet.Tables["admin_info"].Columns["admin_pass"].ColumnName = "密码";
帐号管理_dataSet.Tables["admin_info"].Columns["admin_class"].ColumnName = "等级";
dataGrid1.DataSource = view;//绑定数据源