OleDbCommand.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 (vagy lefordított) verzióját az adatforráson.
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
Kivételek
Példák
Az alábbi példa létrehoz egy OleDbCommand kapcsolatot, és megnyitja a kapcsolatot. A példa ezután előkészít egy tárolt eljárást az adatforráson egy SQL SELECT utasítást és egy sztringet átadva az adatforráshoz való csatlakozáshoz.
private static void OleDbCommandPrepare(string connectionString)
{
using (OleDbConnection connection = new
OleDbConnection(connectionString))
{
connection.Open();
// Create the Command.
OleDbCommand command = new OleDbCommand();
// Set the Connection, CommandText and Parameters.
command.Connection = connection;
command.CommandText =
"INSERT INTO dbo.Region (RegionID, RegionDescription) VALUES (?, ?)";
command.Parameters.Add("RegionID", OleDbType.Integer, 4);
command.Parameters.Add("RegionDescription", OleDbType.VarWChar, 50);
command.Parameters[0].Value = 20;
command.Parameters[1].Value = "First Region";
// Call Prepare and ExecuteNonQuery.
command.Prepare();
command.ExecuteNonQuery();
// Change parameter values and call ExecuteNonQuery.
command.Parameters[0].Value = 21;
command.Parameters[1].Value = "SecondRegion";
command.ExecuteNonQuery();
}
}
Public Sub OleDbCommandPrepare(ByVal connectionString As String)
Using connection As OleDbConnection = New _
OleDbConnection(connectionString)
connection.Open()
' Create the Command.
Dim command As New OleDbCommand()
' Set the Connection, CommandText and Parameters.
command.Connection = connection
command.CommandText = _
"INSERT INTO dbo.Region (RegionID, RegionDescription) VALUES (?, ?);"
command.Parameters.Add("RegionID", OleDbType.Integer, 4)
command.Parameters.Add("RegionDescription", OleDbType.VarWChar, 50)
command.Parameters(0).Value = 20
command.Parameters(1).Value = "First Region"
' Call Prepare and ExecuteNonQuery.
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 a CommandType tulajdonság be van állítva TableDirect, Prepare nem tesz semmit. 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 Méret tulajdonságot a szükséges maximális méretre kell állítania. Prepare hibát ad vissza, ha ezek a feltételek nem teljesülnek.
Ha a hívás Executeután meghív egy metódustPrepare, a Rendszer automatikusan csonkolja a Size tulajdonság által megadott értéknél nagyobb paraméterértéket 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, meg kell adnia a maximális méretet is.