关于获取主键

yk_001 2002-11-26 10:32:41
我在代码中定义SqlDataAdapter等等之类,数据在DATAGRID上显示数据正常,但是就是无法取出主键数组,长度为零
同样使用向导生成的SqlDataAdapter就能在对应的DATASET上获取主键数组

是不是在代码中还需要写些什么内容吗?
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dy_2000_abc 2002-12-08
  • 打赏
  • 举报
回复
在使用 SqlDataAdapter.Fill 方法后,DataTable 和 DataColumn 对象的多种属性(如主键、自动增加字段、可为空值字段、唯一索引等等)都没有设置。默认情况下运行时会针对只读情况优化 SqlDataAdapter 对象。 Fill 方法只检索显示数据所需要的那些架构。 必须采取额外的步骤才能获取其他架构。
要获取有关 DataSet 对象的其他构架信息,可使用下面任一方法(需要注意的是这两种方法是有区别的):
1. 调用 DataAdapter.FillSchema 方法。
2. 在调用 Fill 方法前,将 DataAdapter.MissingSchemaAction 设置为 MissingSchemaAction.AddWithKey。

使用向导生成DataSet时,设计器已经生成架构了。
ArEoN 2002-12-08
  • 打赏
  • 举报
回复
DataSet ds=new DataSet();
DataColumn[] keys=new DataColumn[1];
keys[0]=ds.Tables["Table"].Columns["PK_KEY"];
ds.Tables["Table"].PrimaryKey=keys;
slayersun 2002-11-26
  • 打赏
  • 举报
回复
DataSet ds=new DataSet();
DataColumn[] keys=new DataColumn[1];
keys[0]=ds.Tables["你的表"].Columns["主键列"];
ds.Tables["你的表"].PrimaryKey=keys;
TheAres 2002-11-26
  • 打赏
  • 举报
回复
这是一段产生PrimaryKey的代码片断:

DataSet ds = new DataSet();
DataTable tbl;
//Create the Customers DataTable.
tbl = ds.Tables.Add("Customers");
tbl.Columns.Add("CustomerID", typeof(string));



tbl.PrimaryKey = new DataColumn[] {tbl.Columns["CustomerID"]};

//Create the Order Details DataTable.
tbl = ds.Tables.Add("Order Details");
tbl.Columns.Add("OrderID", typeof(int));
tbl.Columns.Add("ProductID", typeof(int));



tbl.PrimaryKey = new DataColumn[] {tbl.Columns["OrderID"],
tbl.Columns["ProductID"]};

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧