各位:
大家好! 小弟在用OracleDataAdapter来填充数据集的数据时遇到了下面的情况: 我们写了一个公共的数据访问方法,该方法传入一个SQL语句,返回一个数据集。如果SQL语句是操作一个表的那就没有什么问题,但要是操作几个表(select a.*,b.* from a,b where 某某条件)时,就会出现错误,这个错误的原因就是它把这两个表的所有约束全部取回到数据集中了,这样由于我的SQL语句是连接两个表的,所以原来是主键的列会出现空值的情况。
为什么我的SQL语句是连接个表时也把约束也取回来?
SQL连接语句不是相当于视图吗?怎么还要把原来两个表的约束都取回来?
大家好! 小弟在用OracleDataAdapter来填充数据集的数据时遇到了下面的情况: 我们写了一个公共的数据访问方法,该方法传入一个SQL语句,返回一个数据集。如果SQL语句是操作一个表的那就没有什么问题,但要是操作几个表(select a.*,b.* from a,b where 某某条件)时,就会出现错误,这个错误的原因就是它把这两个表的所有约束全部取回到数据集中了,这样由于我的SQL语句是连接两个表的,所以原来是主键的列会出现空值的情况。
为什么我的SQL语句是连接个表时也把约束也取回来?
SQL连接语句不是相当于视图吗?怎么还要把原来两个表的约束都取回来?
两个表的话试试INNER JOIN
我是用ORACLE数据库中,比如说两个表
select * from tab1 a,tab2 b where a.id=b.id
在这种情况下,将显示A表里面所有与B表关联的数据,与B表中关联的数据是不会显示的.
如果我想显示A表中所有数据(含与B表没有关联的数据),那就
select * from tab1 a,tab2 b where a.id=b.id(+)
这样的话,A表中所有数据显示出来,非关联记录中的B表部分则为空
按楼主的说法,你取回来的数据,如果有不可为空的列出现,则表示你SQL语句写错了.不是其他的问题.
对sql语句是跟sqlserver一样支持的
你好好看看你的sql语句