SqlCommand.Prepare Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vytvoří připravenou verzi příkazu v instanci SQL Server.
public:
override void Prepare();
public override void Prepare ();
override this.Prepare : unit -> unit
Public Overrides Sub Prepare ()
Příklady
Následující příklad ukazuje použití Prepare metody .
using System;
using System.Data;
using Microsoft.Data.SqlClient;
namespace SqlPrepareCS
{
class Program
{
static void Main()
{
string connectionString = "Persist Security Info=False;Integrated Security=SSPI;database=Northwind;server=(local)";
SqlCommandPrepareEx(connectionString);
Console.ReadLine();
}
private static void SqlCommandPrepareEx(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand command = new SqlCommand(null, connection);
// Create and prepare an SQL statement.
command.CommandText =
"INSERT INTO Region (RegionID, RegionDescription) " +
"VALUES (@id, @desc)";
SqlParameter idParam = new SqlParameter("@id", SqlDbType.Int, 0);
SqlParameter descParam =
new SqlParameter("@desc", SqlDbType.Text, 100);
idParam.Value = 20;
descParam.Value = "First Region";
command.Parameters.Add(idParam);
command.Parameters.Add(descParam);
// Call Prepare after setting the Commandtext and Parameters.
command.Prepare();
command.ExecuteNonQuery();
// Change parameter values and call ExecuteNonQuery.
command.Parameters[0].Value = 21;
command.Parameters[1].Value = "Second Region";
command.ExecuteNonQuery();
}
}
Poznámky
Pokud CommandType je nastavená hodnota StoredProcedure
, mělo by volání metody proběhnout Prepare úspěšně, i když to může způsobit no-op.
Před voláním Preparepříkazu zadejte datový typ každého parametru, který se má připravit. Pro každý parametr, který má datový typ proměnlivé délky, musíte vlastnost nastavit Size na maximální požadovanou velikost. Prepare vrátí chybu, pokud tyto podmínky nejsou splněny.
Poznámka
Pokud se kontext databáze změní spuštěním příkazu Transact-SQL USE <database>
nebo voláním ChangeDatabase metody, musí Prepare být volána podruhé.
Pokud voláte metodu Execute
po volání Prepare, jakákoli hodnota parametru, která je větší než hodnota určená Size vlastností, se automaticky zkrátí na původní zadanou velikost parametru a nebudou vráceny žádné chyby zkrácení.
Výstupní parametry (ať už připravené nebo ne) musí mít datový typ zadaný uživatelem. Pokud zadáte datový typ proměnlivé délky, musíte zadat také maximální Sizehodnotu .
Před sadou Visual Studio 2010 Prepare došlo k výjimce. Počínaje sadou Visual Studio 2010 tato metoda nevyvolá výjimku.