Nasıl yapılır: Komut Nesneleri için Parametre Ayarlama ve Alma
Bir veritabanı komutları yürütmek için command nesnelerini kullanıyorsanız, sql deyimleri veya saklı yordamlar genellikle çalıştırma parametrelerine gerek duyar.Örneğin, parametre gerektiren basit bir Update deyimi aşağıdaki gibi görünebilir:
UPDATE Employees
SET LastName = @LastName, FirstName = @FirstName, BirthDate = @BirthDate
WHERE (EmployeeID = @EmployeeID)
Bu deyimi yürütüldüğünde, tüm parametreler için değerler sağlamanız gerekir (@LastName, @FirstName, @BirthDate, ve @EmployeeID).Bunu yapmak için parameter nesnelerini kullanın.Command nesnesi parameters derlemesindeki destek (örneğin, Parameters) türündeki nesnelerin bir kümesini içeren SqlParameter, OleDbParameter, OdbcParameter, veya OracleParameter.Koleksiyon geçirmek için gerek duyduğunuz her parametre için bir parametre nesnesi vardır.Buna ek olarak, bir saklı yordam arıyorsanız bir ek parametre yordamın dönüş değeri kabul etmeniz gerekebilir.
[!NOT]
Bir dataset kullanıyorsanız, genellikle komutları doğrudan yürütülmez.Bunun yerine, daha fazla bilgi için TableAdapter sorguları parametre iletmek, bkz: Nasıl Yapılır: Bir Veri Kümesini Verilerle Doldurma.
Parametre değerlerini ayarlama
Bir komutu yürütmeden önce komut her parametre için bir değer ayarlamanız gerekir.
Parametre değeri ayarlamak için
Set komutunun parametrelerini koleksiyonundaki her parametre için kendi Value özelliği.
Aşağıdaki örnek, bir saklı yordam başvuran bir komutu yürütmeden önce parametrelerini ayarlama gösterilmiştir.Adlı üç parametre ile parameters derlemesi zaten yapılandırmış örnek varsayar au_id, au_lname, ve au_fname.Bağımsız parametreleri, onu hangi parametre kümesi temizleyin yapmak adına göre ayarlanır.
With oleDbCommand1 .CommandText = "UpdateAuthor" .CommandType = System.Data.CommandType.StoredProcedure .Parameters("au_id").Value = "172-32-1176" .Parameters("au_lname").Value = "White" .Parameters("au_fname").Value = "Johnson" End With OleDbConnection1.Open() oleDbCommand1.ExecuteNonQuery() OleDbConnection1.Close()
oleDbCommand1.CommandText = "UpdateAuthor"; oleDbCommand1.CommandType = System.Data.CommandType.StoredProcedure; oleDbCommand1.Parameters["au_id"].Value = "172-32-1176"; oleDbCommand1.Parameters["au_lname"].Value = "White"; oleDbCommand1.Parameters["au_fname"].Value = "Johnson"; oleDbConnection1.Open(); oleDbCommand1.ExecuteNonQuery(); oleDbConnection1.Close();
Dönüş değerleri alma
Saklı yordamlar, değerleri geri onları adlı uygulama genellikle geçirir.
Yordamlar tarafından döndürülen değerleri almak için
Parametreleri oluşturun, Direction özelliği ayarlanmışsa çıktı ya da InputOutput (parametre yordamı hem gönderip değerleri için kullanılır).Beklenen dönüş değeri parametresi veri türü eşleştiğinden emin olun.
Yordam yürüttükten sonra okuma Value başa geçirilen parametre özelliği.
Bir yordamın dönüş değerini almak için
Parametreleri oluşturun, Direction ReturnValue özelliğini ayarlayın.
[!NOT]
Dönüş değeri için parametre nesnesi parameters derlemesini ilk öğe olması gerekir.
Parametrenin veri türünü beklenen dönüş değeri eşleştiğinden emin olun.
[!NOT]
Update, INSERT ve Delete sql deyimi tarafından etkilenen kayıtların sayısını gösteren bir tamsayı döndürür.Bu değeri dönüş değeri olarak almak ExecuteNonQuery yöntemi.Daha fazla bilgi için bkz. Modifying Data with Stored Procedures.
Aşağıdaki örnek, adlı bir saklı yordamın dönüş değeri nasıl gösterir CountAuthors.Bu durumda varsayılır komutunun parametrelerini koleksiyonunda ilk parametre ve "retvalue" adlı bir yönü ile yapılandırılmış ReturnValue.
Dim returnValue As Integer
oleDbCommand1.CommandText = "CountAuthors"
oleDbCommand1.CommandType = CommandType.StoredProcedure
oleDbConnection1.Open()
oleDbCommand1.ExecuteNonQuery()
oleDbConnection1.Close()
returnValue = CType(oleDbCommand1.Parameters("retvalue").Value, Integer)
MessageBox.Show("Return Value = " & returnValue.ToString())
int returnValue;
oleDbCommand1.CommandText = "CountAuthors";
oleDbCommand1.CommandType = CommandType.StoredProcedure;
oleDbConnection1.Open();
oleDbCommand1.ExecuteNonQuery();
oleDbConnection1.Close();
returnValue = (int)(oleDbCommand1.Parameters["retvalue"].Value);
MessageBox.Show("Return Value = " + returnValue.ToString());
Ayrıca bkz.
Görevler
Nasıl yapılır: Satırlar Döndüren bir SQL İfadesi Oluşturma ve Yürütme
Nasıl yapılır: Tek Bir Değer Döndüren bir SQL İfadesi Oluşturma ve Yürütme
Nasıl yapılır: Hiçbir Değer Döndürmeyen bir SQL İfadesi Oluşturma ve Yürütme
Nasıl yapılır: Satırlar Döndüren Bir Saklı Yordamı Yürütme
Nasıl yapılır: Tek Bir Değer Döndüren Bir Saklı Yordamı Yürütme
Nasıl yapılır: Değer Döndürmeyen Bir Saklı Yordamı Yürütme