2015-05-20 4 views
0

Если кто-нибудь знает, как использовать случай в запросе для jtable, PLS взгляните на мой код.vb.net - использование запроса выбора case в sql для jtable

Dim batch_status As String = " case when status = 0 then 'Created' when status = 1 then 'Scanning' when status = 2 then 'Scan Saved' end as status" 

cmd.CommandText = "SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY " & jtSorting & " ) AS RowNum, batch_id, batch_name, date_created, profile_id, total_page, " & batch_status & ", First_ScanID, file_id " & _ 
           " FROM [ip_ent_site].[dbo].[tbl_batch] WHERE STATUS IN (0,1,2)) AS RowConstrainedResult " & _ 
          " WHERE RowNum >= @jtStartIndex AND RowNum < @jtEndIndex ORDER BY RowNum ; " 

, если я использую, как это, он работает:

Dim batch_status As String = "status" 

, но с делом, а не.

Что проблема здесь?

другая часть кода:

If dt.Rows.Count > 0 Then 
    students = (From item In dt.AsEnumerable() Select New Class1 With { _ 
    .No = Convert.ToInt32(item(1)), _ 
    .batch_id = Convert.ToInt64(item(2)), _ 
    .batch_name = DirectCast(item(3), String), _ 
    .date_created = item(4).ToString, _ 
    .profile_id = Convert.ToInt32(item(5)), _ 
    .total_page = Convert.ToInt32(item(6)), _ 
    .status = Convert.ToInt32(item(7)), _ 
.First_ScanID = Convert.ToInt32(item(8)), _ 
.file_id = CheckDBNullInteger(item(9)) _ 
}).ToList() 

End If 
+0

Каково ваше значение cmd.CommandText? Что говорит ваш отладчик? –

ответ

0

Просто найти, изменить .status = Convert.ToInt32(item(7)) к .status = item(7).ToString,

отображаются в JTable довольно сильно отличается

0

Используйте объявлять о, как показано ниже.

Dim batch_status As String = " case when status = 0 then ''Created'' when status = 1 then ''Scanning'' when status = 2 then ''Scan Saved'' end as status" 
+0

это не сработало. – Elyor

0

может возникнуть проблема с @jtStartIndex AND @jtEndIndex.

Смежные вопросы