Jak: nastavení a získat parametry příkazu objekty
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 Jak: výplň objektu Dataset s 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
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.
Po provedení postupu čtení Value vlastnost parametr předávaný zpět.
Vrácená hodnota postup získání
Vytvořit parametry, jejichž Direction vlastnost ReturnValue.
[!POZNÁMKA]
Parametr objektu pro vrácená hodnota musí být první položka v kolekci parameters.
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 Specifying Parameters and Return Values.
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
Jak: vytvořit a spustit příkaz SQL, který vrací řádky
Jak: vytvořit a spustit příkaz SQL, který vrací jedinou hodnotu.
Jak: vytvořit a spustit příkaz SQL, který vrací hodnotu žádné
Jak: spustit uloženou proceduru, která vrací řádky
Jak: spustit uloženou proceduru, která vrací jedinou hodnotu.
Jak: spustit uloženou proceduru, která vrací hodnotu žádné