2016-04-05 14 views
-3

2 benzer SQL Select Querys'de bir hata oluştu ve varsayım hatalı NULL kullanıyorum. Birisi bir bakış attı ve bana nerede yanlış gittiğimi gösterdi.SQL Sorguyu Seçin w/Null Parametreleri

string CountHolidayQuery = "SELECT StartDate, EndDate FROM [Holiday] WHERE PayrollNo = @PayrollNo AND Authorised IS NOT Null"; 

ve

string CountRequestedQuery = "SELECT StartDate, EndDate FROM [Holiday] WHERE PayrollNo = @PayrollNo AND Authorised IS Null"; 
+0

böyle satır içi SQL yazmayın Lütfen tehlikelerin farkında olmadıkları sürece - bkz. [here] (http://www.w3schools.com/sql/sql_injection.asp) ve [burada] (https://www.cuttingedge.it/blogs/steven/pivot/entry.php?id=44) . Özellikle bordro verileriyle çalışıyorsanız ... –

cevap

4

Authorised = Null geçersizdir ve Authorised IS Null veya Authorised IS NOT Null SQL

+0

Bunu yaptık, Hata olarak değiştirildi>> System.Data.dll içinde işlenmeyen bir özel durum oluştu. Ek bilgi: Değer yok bir veya daha fazla gerekli parametre için verilir. – Josh

+1

Bunun nedeni, "Null değil" ifadenizde, "Yetkili" yerine "Otomatikleştirilmiş" yazdınız. –

+0

Teşekkürler Alfie, bunu kaçırdığımı düşünemiyorum * Slaps alin * – Josh

4

, boş oldukça değer gibi tedavi edilmezse olmalı ve aslında özel bir durum, sözdizimi içindir Bu Is Null ve Is Not Null, örneğin

ve Authorised boş olmaması gerektiğini söyler ilk açıklamada, ayrıca

string CountRequestedQuery = "SELECT StartDate, EndDate FROM [Holiday] WHERE PayrollNo = @PayrollNo AND Authorised Is Null"; 

, yanlış yazmış ve bunun yerine Autorised

2

O "IS NOT boş" olmalıdır okur, sorgu IS

eksik

Ve ikinci sorgu Authorised = Null geçerli bir sql sözdizimi değil.

1

Ben anahtar kelime

olduğunu eksik olduğunu düşünüyorum şu şekilde ifadesi olacaktır:

string CountHolidayQuery = "SELECT StartDate, EndDate FROM [Holiday] WHERE PayrollNo = @PayrollNo AND Autorised is NOT Null"; 
İlgili konular