2009-05-17 11 views
0

Als ich stellte die folgende SQL-Abfrage,benutzerdefinierten SQL-Parameter IN-Klausel in gridview mit - C#

SELECT 
    [ItemID], [Name], [RelDate], [Price], [Status] 
FROM 
    [item_k] 
WHERE 
    [ItemID] IN (" + itemIDs + ") 

in gridview benutzerdefinierten SQL-Anweisungen, um es zu umgewandelt wird,

SELECT 
    ItemID, Name, RelDate, Price, Status 
FROM 
    item_k 
WHERE 
    (ItemID IN ([ + itemIDs + ])) 

und als ich Ausführen der Abfrage der folgende Fehler angezeigt wird

SQL Execution Error 
Invalid column name '+ itemIDs+' 

Was scheint das Problem zu sein?

dank

Antwort

1

Haben Sie versucht, in einfache Anführungszeichen + + ItemIDs setzen?

1

Das Problem mit Ihrer String-Concat-Methode ist, dass Sie möglicherweise anfällig für SQL-Injektion. Ich würde nicht versuchen, diesen Ansatz zu beheben, sondern für eine parametrisierte Abfrage, die keine String-Verkettung erfordert.

0
SELECT [ItemID], [Name], [RelDate], [Price], [Status] FROM [item_k] WHERE [ItemID] IN (' + itemIDs + ') 

geändert "zu" und es funktionierte!

+0

Oh mein schlecht, undeleted. – TonyArra