分享

dataAdapter的TableMappings属性在开发中有什么用? - Rey的技术博客 - CSDNBlog

 gingging 2009-12-04
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"];

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多