IS NULL Abfragen (SQL Server + VB.Net)

Vamp7771

Mitglied
Hallo & Hilfe :)

Ich brauch einen Sqlstring, der meinem SQL Server folgenden übermittelt:
(VB.Net 2003)

Code:
strsql = "select distinct sum(menge) as qty " & _
                                      "from example_dbo" & _
                                      "WHERE a = '" & a & "'" & _
                                            "AND b= '" & b & "'" & _
                                            "AND c = '" & c & "'" & _
                                             "AND D = ' " & "Is null" & " ' " & _                                           
                                            "AND ts >= '" & CDate(Time_Start).ToString("s") & "'" & _
                                            "AND ts <  '" & CDate(Time_End).ToString("s") & "'"


D - enthält in der DB den Wert <NULL>
und genau die Wert, die in der DB den Wert <NULL> enthalten, will ich selectieren.

Wie mache ich das?

Im Query Analyser habe ich das so hinbekommen:

Code:
select distinct sum(menge) as qty 
from example_dbo
where a = 'a'
  and D is null

Aber das VB..schluckt es einfach nicht

Wo ist der Fehler?

mfg
Vampy
 
Zuletzt bearbeitet:
Formulieren mal das um:
"AND scrapcode= ' " & "Is null" & " ' " &
gegen
" AND scrapcodeb Is null " & ..


Also Anführungzeichen raus und das "=" weglassen.
Ausserdem achte bitte auf die Leerzeichen hinter deinen Anführungszeichen.

Wenn du dir deinen fertigen String im Debugger mal angeschaut hättest, wäre es dir wahrscheinlich auch aufgefallen.

Einen Tip für den Debugmodus. Wenn die in einem Haltepunkt steht kann du im Direktfenster mit ?<variablenname>+<Return> den Wert ausgeben lassen.
Den kann man da rauskopieren und mal gegen eine Datenbank in einem Querydesigner testen.
 
Zuletzt bearbeitet:
Besser wäre es natürlich wenn du eine parameterisierten Abfrage verwenden würdest:
Visual Basic:
    SQL =  "SELECT DISTINCT SUM(menge) AS qty FROM example_dbo " _
          & " WHERE a = @a AND b= @b AND c = @c AND D = Is null " _
          & " AND ts >= @ts AND AND ts < @ts"

    Dim sqlCmd as sqlCmd = new SqlCommand( SQL, meineConnection)                                  

sqlCmd.Parameters.add(..) die Parameter zuweist.
Dann wird der ganze SQL String übersichtlicher.
 
Zurück