2017-05-23 5 views
0

Ich habe eine Tabelle mit der Bezeichnung DueInTable mit einem Feld namens RepairNumber.Suche nach Zellen in der Tabelle, die nicht leer sind

Wie schreibe ich eine SQL-Anweisung, die nur Datensätze in einer GridDataView zurückgibt, wo dieses Feld nicht leer ist?

Dies ist, was ich in den OnLoad-Ereignis des Formulars setzen versucht haben:

label1.BackColor = Color.Transparent; 
OleDbCommand command = new OleDbCommand(); 
command.Connection = connection; 
string data = "Select * from DueInTable WHERE RepairNumber = !NULL"; 
DataTable dt = new DataTable(); 
DataSet ds = new DataSet(); 
OleDbDataAdapter adapter = new OleDbDataAdapter(new OleDbCommand(data, connection)); 
adapter.Fill(ds); 
DataView DV = new DataView(); 
DV.Table = ds.Tables[0]; 
Repair_dtGrdVw.DataSource = DV; 
+2

Die Syntax ist 'IST NICHT NULL', in allen Datenbanken. Sie können nichts mit NULL vergleichen, auch wenn Sie die richtigen Vergleichsoperatoren verwendet haben. –

Antwort

3

Wenn für NULL (oder nicht NULL-Werte) suchen, Sie IS NULL oder IS NOT NULL verwenden sollten.

So sollte Ihre Frage sein:

Select * from DueInTable WHERE RepairNumber IS NOT NULL 
+0

Danke, ich werde es versuchen, wenn ich nach Hause komme. –

0
Select * from DueInTable WHERE RepairNumber IS NOT NULL 
0

Try this:

string data = "Select * from DueInTable WHERE RepairNumber IS NOT NULL"; 
5

WHERE RepairNumber = !NULL bedeutet tatsächlich in SQL wo repairNumber nicht etwas 'undefined'. Da 'etwas undefiniert' (oder aus dem Sie den Wert nicht bestimmen können) niemals 'etwas undefiniert' sein kann, wird der Vergleich mit = immer fehlschlagen.

Aus diesem Grund gibt es eine is (not) null Betreiber:

WHERE RepairNumber is not null 
Verwandte Themen