通过DataTable获得表的主键

通过DataTable获得表的主键,第1张

很多情形下我们需要知道表的主键是什么 在ADO Net中提供了DataTable可以映射数据库的表 于是便可以利用DataTable的属性PrimaryKey 它是DataColumn[] 类型是一个数组 我们可以使用如下的代码

DataColumn[] cols cols = Table PrimaryKey //注意不是cols是DataColumn数组 不是DataColumn变量 这样做主要是为了处理联合主键的问题

for(int i = i <cols Length i++)

{ MessageBox Show(cols[i] ColumnName) }

按理这个问题就已经解决了 但是cols Length却是 原来在默认的情况下填充DataTable时并没有从数据库中取的主键的信息 如何获得主键呢?经过研究发现在填充Dataset的时候可以使用DataAdapter的MissingSchemaAction属性帮助我们解决这个问题 于是有如下的代码

//使用DataAdapter填充DataTable dataadapter MissingSchemaAction = MissingSchemaAction AddWithKey dataadapter Fill(Table)

DataColumn[] cols cols = Table PrimaryKey //注意不是cols是DataColumn数组 不是DataColumn变量 这样做主要是为了处理联合主键的问题

for(int i = i <cols Length i++)

{ MessageBox Show(cols[i] ColumnName) }

lishixinzhi/Article/program/net/201311/13602

C# code

?

1

2

3

4

vSQL = string.Format(vSQL, PubCode.FmtSQLTextS(vDeptID))

DataTable dtFixedOrg = AppDA.GetDataTable(vSQL)

dtFixedOrg.PrimaryKey = dtFixedOrg.Columns["DeptID"]

其实,这样就已经设置了DataTable的主键了,只不过,只是DataTable的,和数据库中的数据无关.


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7701924.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存