非常简单的sqlDataAdapter.Fill加载数据问题,请高手指点。

kingyu 2003-10-17 01:41:09
本人在做一张Form时,里面要加载两张表,车辆档案和车辆交易记录,这两张表是一对多的关系,车辆档案的编号是主健,车辆交易记录中的车辆编号是外健,与车辆档案的编号想对应;数据加载程序代码如下:

this.sqlConnData.Open();
// 尝试通过 AdapterPj 填充数据集。
this.sqlAdapter车辆档案.Fill(DataSetT,"车辆档案");
this.sqlAdapter车交易记录.Fill(DataSet,"VIEW_车交易记录");
采用强类型DataSet,里面两张表也建立关系。

错误现象:
1、当加载全部数据时没有错误
2、当加载部分车辆档案(通过条件选择)时出现错误,报对应外健什么约束出错。


请高手指点。

...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr.Osc 2003-11-13
  • 打赏
  • 举报
回复
遇到了类似的问题,关注。。。
MeMeFang 2003-10-17
  • 打赏
  • 举报
回复
两张表产生一个 DataSet 试试.
jimmyzhang 2003-10-17
  • 打赏
  • 举报
回复
1、当加载全部数据时没有错误
2、当加载部分车辆档案(通过条件选择)时出现错误,报对应外健什么约束出错。
照你做的那樣當然會出問題了,現況可能是有是會出問題,有時不會出的,
因為你分別通过不同的条件选择兩張表時,兩張表的資料肯定不會相同,
那麼兩張表的主鍵和外部鍵不能建立一對多的關系,所以就會出錯.
當你全部的加載數據時因為兩張表的主鍵和外部鍵都可以找到相對應的鍵,所以不會出問題

解決方法:兩張表分別查詢時要求查詢的條件要對就到你所建立的關聯就可以了.
具體查詢語句你按上面的方法寫就不會出現問題
nebular 2003-10-17
  • 打赏
  • 举报
回复
或者,你不要在DATASET里用外键就行了
nebular 2003-10-17
  • 打赏
  • 举报
回复
因为在装载部分车辆档案时,你的“VIEW_车交易记录”里面有全部车辆,由于是强类型的DATASET,它里面有数据库的外键,所以你不可以只装载部分的车辆档案。
如果一定要,就必须使"VIEW_车交易记录"的记录的车辆数据只包括已经装载的车辆数据。
storm97 2003-10-17
  • 打赏
  • 举报
回复
那你就让他加载全部数据就行了,然后在DataTable中用select方法选出需要的记录,或是在DataView中用RowFilter来进行数据过滤。

110,533

社区成员

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

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

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