dataAdapter的TableMappings属性在开发中有什么用?

来源:互联网 发布:qt snmp 网络管理软件 编辑:程序博客网 时间:2024/05/20 10:51
 

http://blog.csdn.net/zhanglei5415/article/details/1703177

DataAdapter.TableMappings 属性

获取一个集合,它提供源表和 DataTable 之间的主映射

示例:
public void ShowTableMappings() {
// ...
// create myDataAdapter
// ...
myDataAdapter.TableMappings.Add("Categories","DataCategories");
myDataAdapter.TableMappings.Add("Orders","DataOrders");
myDataAdapter.TableMappings.Add("Products","DataProducts");
string myMessage = "Table Mappings:/n";
for(int i=0;i < myDataAdapter.TableMappings.Count;i++) {
myMessage += i.ToString() + " "
+ myDataAdapter.TableMappings[i].ToString() + "/n";
}
MessageBox.Show(myMessage);
}
=================================================================================== 

是这样的,如果一个DataAdapter返回的是多个记录集,那么,可以通过这个TableMappings来和这多个记录集建立名称对应关系.

默认的情况下,比如没有指定这个值,那么Fill(DataSet ds)后ds中的第一个表名是Table,第二个表是Table1,第三个是Table2...
如果用了TableMappings,那么这些Table,Table1,Table2就可以用TableMappings中指定的名称了,
这样的话,就可以通过ds.Table[tableName]来访问一个具体名称的表了.

例如:
sqlAda = new SqlDataAdapter();
sqlAda.TableMappings.Add("Table", "orders");
sqlAda.TableMappings.Add("Table1", "employees");
...
ds = new DataSet();
sqlAda.Fill(ds);
//这时ds.Tables[0].TableName为orders,
//ds.Tables[1].TableName为employees;
//这样就方便了按句子取一个表,比如DataTable orders=ds.Tables["orders"];

原创粉丝点击