日期:2014-05-17  浏览次数:20310 次

关于gridview中的自动绑定checkbox

   SELECT TYPE_PAR_NO, TYPE_PAR_NAME, CAST((CASE WHEN '{0}' = '' THEN 0 ELSE (CASE WHEN TYPE_PAR_NO IN (SELECT TYPE_PAR_NO FROM FAMS.TB_SUPPLIER_INFO_DTL WHERE SUP_SN  = '{0}') THEN 1 ELSE 0 END) END) AS BIT) AS CHECKED_NO 
                                                FROM FAMS.TB_TYPE_PARENT_INFO

这是我写出来的sql语句。不过觉得非常不妥。。
问题描述:在TB_SUPPLIER_INFO_DTL中会有一项TYPE_PAR_NO外键,为TYPE_PARENT_INFO的TYPE_PAR_NO的值,现今,想要实现的是,选出TYPE_PARENT_INFO中的所有值,然后加上一列,如果TB_SUPPLIER_INFO与TB_PARENT_INFO连接存在的话,值为1,否则值为零,重而让其在GRIDVIEW中自动进行绑定处理。这样描述不知道清楚不?
------解决方案--------------------
用计算字段不行么?
你这样的做法我没试过,明天试试
------解决方案--------------------
SELECT TYPE_PAR_NO, TYPE_PAR_NAME, case when t.TYPE_PAR_NO is null then 0 else 1 end AS CHECKED_NO 
FROM FAMS.TB_TYPE_PARENT_INFO s left TB_SUPPLIER_INFO_DTL t on s.TYPE_PAR_NO=t.TYPE_PAR_NO

------解决方案--------------------
一般都是用计算字段,ADO控件对多表关联的控制不太好
------解决方案--------------------
引用:
SQL code

SELECT TYPE_PAR_NO, TYPE_PAR_NAME, case when t.TYPE_PAR_NO is null then 0 else 1 end AS CHECKED_NO 
FROM FAMS.TB_TYPE_PARENT_INFO s left TB_SUPPLIER_INFO_DTL t on s.TYPE_PAR_NO=t.TYPE_PAR……

UP影子锅。