再VB 2005的拖放式数据绑定时遇到的问题

VB 2005中拖放数据绑定确实很爽,只要在数据源中定义好数据源,然后从数据对象上拖放控件
到窗体就可以了。但是今天碰到一个问题,在库中有两个表:订单表和订单明细表。我在数据源
中创建了一个新的DataAdapter,它的Fill方法的SQL语句是:
SELECT      订单表.订单ID, 订单表.货主名称, 订单明细表.货物数量  *  订单明细表.货物单价  AS  总价格, 订单明细表.货物名称
FROM          订单表  INNER   JOIN
                      订单明细表 
ON  订单表.订单ID  =  订单明细表.订单ID

但是将这个DataAdapter的DataGridView拖放到窗体,运行后确出现这样的错误:
"Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints."
但是上面的SQL语句在SQL Server中执行完全没问题,想了半天,后来看了看数据源的xsd文件,
看到有这样的约束:
     < xs:unique  name ="Constraint1"  msdata:PrimaryKey ="true" >
      
< xs:selector  xpath =".//mstns:订单表"   />
      
< xs:field  xpath ="mstns:订单ID"   />
    
</ xs:unique >

会不会是这样的问题呢?将上面的SQL换一下:
SELECT      订单明细表.订单ID, 订单表.货主名称, 订单明细表.货物数量  *  订单明细表.货物单价  AS  总价格, 订单明细表.货物名称
FROM          订单表  INNER   JOIN
                      订单明细表 
ON  订单表.订单ID  =  订单明细表.订单ID

果然运行通过了,数据约束有时候还真是麻烦,因为有了对订单表.订单ID的约束,因此前面的SQL
查询出来的结果订单表.订单ID字段值有重复就会报错,如果换成订单明细表.订单ID,因为没有约束
所以就没有问题了。

你可能感兴趣的:(数据绑定)