Aracılığıyla paylaş


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

  1. 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.

  2. 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

  1. Parametreleri oluşturun, Direction ReturnValue özelliğini ayarlayın.

    [!NOT]

    Dönüş değeri için parametre nesnesi parameters derlemesini ilk öğe olması gerekir.

  2. 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

Kavramlar

Uygulamanıza Veri Getirme

DataAdapter Parameters

Modifying Data with Stored Procedures