Sdílet prostřednictvím


Postupy: Nastavování a získávání parametrů pro objekty příkazu

Příkazy proti databáze pomocí příkazu objekty, příkazy SQL nebo uložené procedury, které jsou často provádění vyžadují parametry. Například jednoduchý příkaz Update, který vyžaduje parametry může vypadat takto:

UPDATE Employees
SET LastName = @LastName, FirstName = @FirstName, BirthDate = @BirthDate
WHERE (EmployeeID = @EmployeeID)

Po provedení tohoto příkazu je nutné zadat hodnoty pro všechny parametry (@LastName, @FirstName, @BirthDate, a @EmployeeID). Provedete to tak, použijete parametr objekty. Příkaz objekty podporují shromažďování parametrů (například Parameters), který obsahuje sadu objektů typu SqlParameter, OleDbParameter, OdbcParameter, nebo OracleParameter. Existuje jeden parametr objektu v kolekci pro každý parametr, který je potřeba předat. Navíc při volání uložené procedury, můžete další parametr přijmout vrácená hodnota v postupu.

Poznámka

Pokud používáte objekt dataset, je obvykle spustit příkazy přímo.Místo toho předat parametry dotazy TableAdapter, Další informace naleznete v tématu Postupy: Vyplnění datové sady daty.

Nastavení hodnot parametrů

Před spuštěním příkazu, musíte nastavit hodnotu pro každý parametr v příkazu.

Nastavení hodnoty parametru

  • U každého parametru v kolekci parameters na příkaz nastavit jeho Value vlastnost.

    Následující příklad ukazuje, jak nastavit parametry před spuštěním příkazu, který odkazuje na uložené procedury. Vzorek se předpokládá, že jste již nakonfigurovali shromažďování parametrů se třemi parametry s názvem au_id, au_lname, a au_fname. Jednotlivé parametry jsou nastaveny podle názvu je nastaven parametr, který.

    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();
    

Získání vrácené hodnoty

Hodnoty uložené procedury často předat zpět do aplikace, která je volána.

Získat hodnoty vrácené postupy

  1. Vytvořit parametry, jejichž Direction vlastnost výstup nebo vstup/výstup (Pokud je parametr je používán postup přijímat i odesílat hodnoty). Zkontrolujte, zda že typ dat parametru odpovídá očekávané vrácenou hodnotu.

  2. Po provedení postupu čtení Value vlastnost parametr předávaný zpět.

Vrácená hodnota postup získání

  1. Vytvořit parametry, jejichž Direction vlastnost ReturnValue.

    Poznámka

    Parametr objektu pro vrácená hodnota musí být první položka v kolekci parameters.

  2. Zkontrolujte, zda že typ dat parametru odpovídá očekávané vrácenou hodnotu.

    Poznámka

    Příkazy Update, Insert a Delete SQL vrátí celočíselnou hodnotu označující počet záznamů, které jsou ovlivněny prohlášení.Tuto hodnotu můžete získat jako vrácenou hodnotu ExecuteNonQuery metoda.Další informace naleznete v tématu Modifying Data with Stored Procedures.

Následující příklad ukazuje, jak získat vrácená hodnota uložená procedura se nazývá CountAuthors. V tomto případě se předpokládá, že první parametr příkazu shromažďování parametrů s názvem "retvalue" a že je nakonfigurován s směru 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());

Viz také

Úkoly

Postupy: Vytvoření a provedení příkazu SQL, který vrací řádky

Postupy: Vytvoření a provedení příkazu SQL, který vrací jedinou hodnotu

Postupy: Vytvoření a provedení příkazu SQL, který nevrací žádnou hodnotu

Postupy: Provedení uložené procedury, jež vrací řádky

Postupy: Provedení uložené procedury, jež vrací jedinou hodnotu

Postupy: Provedení uložené procedury, jež nevrací žádnou hodnotu

Koncepty

Načítání dat do vaší aplikace

DataAdapter Parameters

Modifying Data with Stored Procedures