0

特定の端末が先週使用されたかどうかを確認する VB.Net プログラムがあります。if then ステートメントを使用して結果を送信したいと思います。テーブルアダプターが空(NULL)の場合、プログラムで何かを実行したいと思います...今私は持っています:

Me.1TableAdapter.Fill(Me.SwiperCheck.1, DTstartdate, TodayEnd)

If (Me.SwiperCheck.1.Count = 0) Then

msgbox ("It Worked")

ここに私のデータセットクエリがあります:

SELECT        CASE WHEN COUNT(sTerminal) = 0 THEN NULL ELSE COUNT(sTerminal) END AS terminal
FROM            Swipe
WHERE        (dtCreated BETWEEN @startdate AND @enddate) AND (sTerminal = 'Swiper 1')

ただし、機能していません。出力が「Null」であることはわかっています。出力が null でない場合、プログラムは正しく機能します。

4

5 に答える 5

1

カウントがゼロのときにレコードを返さない場合は、次のようにする必要があります。

SELECT        COUNT(sTerminal) terminal
FROM            Swipe
WHERE        (dtCreated BETWEEN @startdate AND @enddate) AND (sTerminal = 'Swiper 1')
HAVING COUNT(sTerminal) > 0

これにより、元の IF が正しく機能するはずです。

于 2013-03-18T18:13:07.857 に答える
0

クエリは、書かれているように、常に 1 つの行を持ちます。あなたの条件は、テーブルの行数をチェックしています。だから「If (1=0) Then」……

本当に確認する必要があるのは次のとおりです。

If (Me.SwiperCheck.1.Item(0) Is DBNull.Value) Then
于 2013-03-15T19:13:06.210 に答える
0

代わりに IsDbNull(me.swipercheck.1.count) = false を試しましたか? (申し訳ありませんが、担当者のため、まだ投稿に小さなコメントを書くことができないようです)。

于 2013-03-19T15:21:34.500 に答える
0

0 を dbnull に変更してみるか、

me.swipercheck.1.count is nothing
于 2013-03-13T03:32:31.180 に答える