再请教一个问题

zhongxin 2003-04-22 12:18:24
我用一个具有ds.relations的dataset填充一个dataGrid,如果选择查询所有列就没有问题,但如果在父级中选择单独一列查询(比如"select * from OrderForm where address='"+adr+"'"),就会出现异常,为什么呢?
如下就没问题
dbinfor.SetValues();
SqlConnection conn=new SqlConnection(dbinfor.connectstring());
conn.Open();
SqlDataAdapter ad=new SqlDataAdapter("select * from OrderForm",conn);
SqlCommandBuilder builder=new SqlCommandBuilder(ad);
DataSet ds=new DataSet();
ad.Fill(ds,"OrderForm");
ad=new SqlDataAdapter("select * from OrderDetail",conn);
ad.Fill(ds,"OrderDetail");
ds.Relations.Add("OrderDetails",ds.Tables["OrderForm"].Columns["OrderNum"],ds.Tables["OrderDetail"].Columns["OrderNum"]);
conn.Close();
return ds;
但如果用了开始说的方法酒会出现异常,为什么呢?
...全文
23 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
timmy3310 2003-04-24
  • 打赏
  • 举报
回复
“我的orderdetail表里面没有address这个字段能从orderform表里面取吗?”

那你需要用关联查询,如:

select detail.* from orderdetail as detail,orderform
where orderform.address=...
and detail.id = orderform.id //这里用主键值连接
zhongxin 2003-04-24
  • 打赏
  • 举报
回复
System.ArgumentException: 不能启用此约束,因为不是所有的值都具有相应的父值。
at System.Data.DataRelationCollection.Add(DataRelation relation)
at System.Data.DataRelationCollection.Add(String name, DataColumn parentColumn, DataColumn childColumn)
at SubPlatformWebService.Admin.OrderFormAdmin.ViewAllOrderForm() in f:\coins.net\subplatformwebservice\admin\orderformadmin.cs:line 64
at SubPlatformWebService.AdminWebService.ViewAllOrderForm() in F:\Coins.NET\SubPlatformWebService\AdminWebService.asmx.cs:line 124

ssoonzhang 2003-04-22
  • 打赏
  • 举报
回复
用Try...catch捕获一下错误
timmy3310 2003-04-22
  • 打赏
  • 举报
回复
所以
select * from OrderDetail
也应该改为相应的:
select * from OrderDetail where ...=....
timmy3310 2003-04-22
  • 打赏
  • 举报
回复
你的OrderForm是主表吧,如果主表只查一部分数据,那么字表也应该查询相应的数据,除非你不在DataSet中给它们增加关联
否则你增加关联的时候,会有一部分子表的数据找不到主表的数据来关联
pengweihua 2003-04-22
  • 打赏
  • 举报
回复
"select * from OrderForm where address='"+adr+"'"

不能含有特如字符如‘
zwztu 2003-04-22
  • 打赏
  • 举报
回复
有什么异常?报错是什么?
gOODiDEA 2003-04-22
  • 打赏
  • 举报
回复
检查一下"select * from OrderForm where address='"+adr+"'"出来的数据是否为null
nazl 2003-04-22
  • 打赏
  • 举报
回复
把异常贴出来
zhongxin 2003-04-22
  • 打赏
  • 举报
回复
timmy3310(Tim)能说一下怎么改吗?
我的orderdetail表里面没有address这个字段能从orderform表里面取吗?

110,538

社区成员

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

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

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