DataTable和DataColumn映射

本文基于https://msdn.microsoft.com/zh-cn/library/ks92fwwh(VS.80).aspx

在用户视图的datatable和数据库的data之间列名转换的问题

直接修改datagridview不好使,因为需要在form设计的时候确定列

在程序中动态确定列需要从数据库同步的时候操作,这里使用的是映射的方法。

官方文档上面写的mapping.ColumnMappings.Add("CompanyName", "Company");很是混淆

经过试验第一个字符串是数据库的列名,第二个字符串是映射的列名;

另外这个映射方法对于system.data.oracleclient也适用;

DataTableMapping mapping =   adapter.TableMappings.Add("Table", "NorthwindCustomers");

mapping.ColumnMappings.Add("CompanyName", "Company");

mapping.ColumnMappings.Add("ContactName", "Contact");

mapping.ColumnMappings.Add("PostalCode", "ZIPCode");

adapter.Fill(custDS);

Table表名是固定的;

               OracleDataAdapter adapter = new OracleDataAdapter(sql, conn);
                conn.Open();

                DataTableMapping mapping =
                adapter.TableMappings.Add("Table", "data");
                DataSet dsClass = new DataSet();   //创建一个新的空班级DataSet
                dsClass.Tables.Add(dt);  //将班级表添加到DataSet中
                SetTableMap(i, mapping);
                adapter.Fill(dsClass);
具体用法如上。SetTableMap是自己写的方法,用于复杂情况的映射。

 

你可能感兴趣的:(C#)