2016-04-07 14 views
0

In einer SQL-Abfrage arbeiten wir WHERE IN Klausel verwenden, die Daten zu filtern. Wenn ich vorbei 35000 Felder in WHERE IN Klausel, die ExecuteNonQuery wirftAbfrage WHERE IN-Klausel nicht

Objektverweis auf eine Instanz Ausnahme nicht gesetzt

I try catch in verwendet haben, wo die ExecuteNonQuery excuted, aber die Ausnahme Strom nicht catched Verfahren, catched es in übergeordnete Methode (Button klicken)

Wenn ich die Zählung 35.000-25.000 die SQL-Abfrage funktioniert gut reduziert. Bitte helfen Sie.

SELECT * FROM COUNTRY WHERE CountryID in ('1','2',......'35000') 

Ich habe versucht, Temp-Tabelle in SQL auch zu verwenden, der gleiche Fehler ist aufgetreten.

IF OBJECT_ID('tempdb..#temp)IS NOT NULL DROP #TEMP 
CREATE TABLE #TEMP 
(CountryID int NULL) 
INSERT INTO #TEMP VALUES ('1') 
. 
. 
. 
INSERT INTO #TEMP VALUES('10') 

SELECT * FROM COUNTRY WHERE CountryID IN(SELECT CountryID from #temp) 

Das Objekt null Referenzfehler ist nicht das Problem, wie kann ich die Where In Klausel Problem in SQL-Abfrage zu überwinden. Was wäre die mögliche Lösung, um die Where in-Klausel in SQL-Abfrage zu vermeiden.

Bitte helfen. Vielen Dank.

+1

Welche Sie Produkt verwenden dbms? – jarlh

+0

Mögliche Duplikat [Was bedeutet „Objektverweis nicht auf eine Instanz eines Objekts festgelegt“ bedeuten?] (Http://stackoverflow.com/questions/779091/what-does-object-reference-not-set-to-an -instance-of-a-object-mean) –

+0

Zeigen Sie Ihren Code hinter –

Antwort

3

JOIN statt, sollte diese

arbeiten
SELECT * FROM COUNTRY c INNER JOIN #temp t on c.CountryId=t.CountryId 
+0

Ich werde Ihren Code versuchen. – Cegone

+0

Es hat für Sie funktioniert, bitte markieren Sie die Antwort richtig :) –

0

Warum nicht einfach zwischen benutzen?

SELECT * FROM COUNTRY WHERE CountryID between 1 and 10

+2

Vielleicht gibt es Lücken? – jarlh

+0

@jarlh Ich weiß nicht, wie er das bekommt, was ID auswählen, aber Sie können verwenden 'OR', SELECT * FROM LAND CountryID zwischen 1 und 4 oder CountryID zwischen 8 und 10' – crimson589

+0

1 bis 10 ist beispielsweise die ids wären '12584', 65845 ',' 75896 'so .. – Cegone