2009-03-04 13 views
1

kullanmak için bir SQLCommand oluşturma SQLDataAdapter kullanarak bir tablodan verileri silmeye çalışıyorum ve bunu yapmak için bir DeleteCommand vermem gerekiyor.Bir SQLDataAdapter

SQL ben bir satır silmek için kullanacağı geçerli:

DELETE FROM table WHERE ID = x 

sorun böylece: Nasıl ile x yerine ne DataAdapter için belirtebilirim? DataAdapter'u oluşturmak için SQL, veri tablosundan güncellenmesi (dış birleştirme) için biraz farklıdır (katılmaz).

Bunu nasıl yapabilirim?

cevap

4

komut silmek için parametre iletebilirsiniz:

// Create the DeleteCommand. 
command = new SqlCommand(
    "DELETE FROM Customers WHERE CustomerID = @CustomerID", connection); 

// Add the parameters for the DeleteCommand. 
parameter = command.Parameters.Add(
     "@CustomerID", SqlDbType.NChar, 5, "CustomerID"); 
parameter.SourceVersion = DataRowVersion.Original; 

adapter.DeleteCommand = command; 

MSDN

+0

Bu ile SQL Injection'ı kontrol etmem gerekiyor mu? – Malfist

+0

Hayır yapmazsanız, girdileri parametre olarak geçirirsiniz. – Canavar

1

kullanım SourceColumn ve SourceVersion SqlParameter özellikleri:

İşte
 var deleteCommand = connection.CreateCommand(); 
     deleteCommand = "DELETE FROM table WHERE ID = @ID"; 
     var param = new SqlParameter("ID"); 
     param.SourceColumn = "the Select Column"; 
     param.SourceVersion = DataRowVersion.Original; 
     deleteCommand.Parameters.Add (param); 
+0

alınan kod SourceVersion nedir açıklayabilir misiniz? – Malfist

+0

SourceVersion hangi değerin kullanılacağını gösterir; Orijinal, select sorgusuyla aldığınız orijinal değerdir. Geçerli, alanın geçerli değeridir, tıpkı değiştirdiyseniz gibi. – albertein

İlgili konular