简单的问题让我头疼:(。。。。。。。。。。。。。。

when 2003-08-19 04:58:25
string strSql="select distinct ps_comp,pt_desc1,ps_qty_per,ImportLocal ,pt_vend,ad_name from pub.ps_mstr inner join pub.pt_mstr on pt_part=ps_comp left join pub.ad_mstr on pt_mstr.pt_vend=ad_mstr.ad_addr inner join pub.tr_hist on tr_part=pt_part inner join PISAdmin.ItemFieldMap on pt_part=ItemNumber where ImportLocal <> '' and ps_par='88250-00000' and tr_date>'2003-6-30 0:00:00'";


OdbcConnection sqlConn=new OdbcConnection();

sqlConn.ConnectionString ="dsn=test;uid=sysprogress;pwd=proadmin;";
sqlConn.Open();
DataSet ds=new DataSet();
OdbcDataAdapter Adapter=new OdbcDataAdapter(strSql,sqlConn);
Adapter.Fill(ds);
dataGrid1.DataSource=ds.Tables[0].DefaultView;
dataGrid1.Refresh();


这段代码再简单不过了,可是当记录里面的最后两个字段pt_vend,ad_name 在相应的表里面没有关联值得时候,系统就提示出错。
我想对于left join这样的外连,即使右边的表没有记录也应该正常填充才对啊,可是我这边就是不行,不知道是怎么回事情,55555555555555555~~~
...全文
38 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
when 2003-08-20
  • 打赏
  • 举报
回复
_weiKun_(Virus) ,当select后面的最后两字段就不为空时,数据填充正确。
只有当select后面的最后两字段就为空时,数据填充才会有错误。
所以我认为不是sql语句的问题
_weiKun_ 2003-08-19
  • 打赏
  • 举报
回复
left join改成left out join
when 2003-08-19
  • 打赏
  • 举报
回复
我说的最后两字段是select后面的,不是条件字段。
条件都问题
最主要的是当left的右边的表没有关联字段时,select后面的最后两字段就为空,这时候填充dataset就出错
雪狼1234567 2003-08-19
  • 打赏
  • 举报
回复
你把sql语句放在查询器里执行一下,看是否有问题,我觉得是sql语句的问题
MarcuseXiao 2003-08-19
  • 打赏
  • 举报
回复
将这个位置ps_par='88250-00000' and tr_date>'2003-6-30 0:00:00';
改成 (ps_par='88250-00000' or ps_par is null) and (tr_date>'2003-6-30 0:00:00' or tr_date is null)
SQL语句当后俩个值没有时也不会出错
when 2003-08-19
  • 打赏
  • 举报
回复
sql语句肯定没问题,我在查询分析器里面检索了,有数据
但是一旦最后两个字段没有值就会出错
HenanBoy 2003-08-19
  • 打赏
  • 举报
回复
你看看Sql语句有没有错误在说了
godliu521 2003-08-19
  • 打赏
  • 举报
回复
ljianq 2003-08-19
  • 打赏
  • 举报
回复
可能是dataGrid1显示设置问题。
CMIC 2003-08-19
  • 打赏
  • 举报
回复
left join改成left out join
jiezhi 2003-08-19
  • 打赏
  • 举报
回复
好好檢查你的sql語句吧。

110,526

社区成员

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

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

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