0

この単純なSQLは、SQLサーバーで完璧に機能します...

Select it.Id as Id, it.Status as Status,
    (SELECT COUNT (*) FROM PickLocations as pl WHERE pl.PickBatchItemId = bi.Id) AS Counts
FROM PickBatches AS it
INNER JOIN PickBatchItems as bi ON it.Id = bi.PickBatchId

私に与える...

Id, Status, Counts
-------------------
1    1       2
2    1       0
3    2       2

しかし、文句を言わないように変更を加えた後...

Select it.Id as Id, it.Status as Status,
    (SELECT COUNT (pl.Id) FROM PickLocations AS pl WHERE bi.Id == pc.PickBatchItemId) AS Count
FROM PickBatches AS it
INNER JOIN PickBatchItems as bi ON it.Id == bi.PickBatchId

これを EntityDataSource CommandText で使用すると...

Id, Status, Counts
-------------------
1    1       System.Collections.Generic.List`1[System.Data.Common.DbDataRecord]
2    1       System.Collections.Generic.List`1[System.Data.Common.DbDataRecord]
3    2       System.Collections.Generic.List`1[System.Data.Common.DbDataRecord]

明らかに単純なものが欠けています...

アップデート

Vikram によって解決された問題。

select value count()を使用し、 Count[0]でカウントのインデックスを取得する

4

1 に答える 1

1

入れ子にVALUEを追加すると、SELECT代わりに Int32 のリストが返されました。

このようにバインドすると、次の値が返されます。

Count='<%# Eval("Count[0]") %>'
于 2012-03-09T11:39:52.740 に答える