SqlCommand.Prepare Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Létrehozza a parancs előkészített verzióját a SQL Server egy példányán.
public:
override void Prepare();
public:
virtual void Prepare();
public override void Prepare();
public void Prepare();
override this.Prepare : unit -> unit
abstract member Prepare : unit -> unit
override this.Prepare : unit -> unit
Public Overrides Sub Prepare ()
Public Sub Prepare ()
Megvalósítás
Példák
Az alábbi példa a Prepare metódus használatát mutatja be.
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();
}
}
Private Sub SqlCommandPrepareEx(ByVal connectionString As String)
Using connection As New SqlConnection(connectionString)
connection.Open()
Dim command As New SqlCommand("", connection)
' Create and prepare an SQL statement.
command.CommandText = _
"INSERT INTO Region (RegionID, RegionDescription) " & _
"VALUES (@id, @desc)"
Dim idParam As SqlParameter = _
New SqlParameter("@id", SqlDbType.Int, 0)
Dim descParam As SqlParameter = _
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()
End Using
End Sub
Megjegyzések
Ha CommandType be van állítva StoredProcedure, a hívásnak Prepare sikeresnek kell lennie, bár ez no-opokozhat.
A hívás Prepareelőtt adja meg az egyes paraméterek adattípusát az előkészítendő utasításban. Minden változó hosszúságú adattípussal rendelkező paraméter esetében a tulajdonságot a Size szükséges maximális méretre kell állítania. Prepare hibát ad vissza, ha ezek a feltételek nem teljesülnek.
Note
Ha az adatbázis-környezet a Transact-SQL USE <database> utasítás végrehajtásával vagy a ChangeDatabase metódus meghívásával módosul, akkor a Prepare második alkalommal kell meghívni.
Ha a hívás Executeután meghív egy metódustPrepare, a tulajdonság által Size megadott értéknél nagyobb paraméterérték automatikusan csonkolja a paraméter eredeti megadott méretére, és a rendszer nem ad vissza csonkítási hibákat.
A kimeneti paramétereknek (akár előkészítettek, akár nem) felhasználó által megadott adattípussal kell rendelkezniük. Ha változó hosszúságú adattípust ad meg, a maximális Sizeértéket is meg kell adnia.
2010 Visual Studio előtt Prepare kivételt jelzett. 2010 Visual Studio-től kezdődően ez a módszer nem kivételt okoz.
A következőre érvényes:
Lásd még
- Az adatok összekapcsolása és lekérése az ADO-ban.NET
A .NET-keretrendszer Data Provider használata SQL Server - ADO.NET áttekintése