1

我正在为 Gridview 使用以下 SELECT 语句:

  SelectCommand="SELECT ID, Date, Train, I_R, Dir_Ind, Detn, Rly, DiV, Loco, Shed, locoClass, loco_type,
(maj_sch_type + ','+ ' ' + maj_sch_place +',' +' '+ (CAST(maj_sch_dt as VARCHAR(11)) + ' '+'/' 
+ ' ' + min_sch_type +',' + ' ' + min_sch_place + ',' + ' '+(CAST(min_sch_dt as VARCHAR   (11))) ))    as "major",
 Equipt, I_R, reason 
 FROM PunctualityMain Order by Date ASC"

有了上述内容,我从 6 (3 + 3) 个不同的 SQL 数据字段中获得了单个单元格的结果

 POH, KPA, Jan 2 2012 / IB, Shed, Apr 18 2012

问题是,只要任何 3 个字段组(“/”之前或之后)中的数据为空白,Gridview 单元格就会保持完全空白。如果两组字段的数据都比 Gridview 显示好,如上所述。可以修改 SELECT 语句以在 Gridview 中显示任何一组字段为空的数据吗?

4

1 回答 1

0

如果您尝试将空字符串与非空字符串连接,则结果将为空。

Select NULL + 'test' 

这将返回 NULL。

另外,我认为您的代码没有很好地将粘贴复制到您的问题中,但是您需要使用该ISNULL()功能。我想你能明白这一点。您可能需要稍微清理一下代码才能运行。只需用 ISNULL(MyField, '') 包装您连接的每个字段

SELECT 
    ID, 
    Date, 
    Train, 
    I_R, 
    Dir_Ind, 
    Detn, 
    Rly,    
    DiV, 
    Loco, 
    Shed, 
    locoClass, 
    loco_type,
    (isnull(maj_sch_type, '') + ', ' + isnull(maj_sch_place, '') +', '+ (isnull(CAST(maj_sch_dt as VARCHAR(11), '')) + ' / ' + isnull(min_sch_type, '') +', ' + isnull(min_sch_place, '') + ', '+ (isnull(CAST(min_sch_dt as VARCHAR   (11)), '')) ))    as "major",
     Equipt, 
    I_R, 
    reason 
 FROM PunctualityMain 
 Order by Date ASC

参考

于 2013-02-14T04:12:15.673 回答