OleDbCommand.Prepare 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在資料來源上建立命令已備妥 (或已編譯) 的版本。
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 ()
實作
例外狀況
範例
下列範例會 OleDbCommand 建立 並開啟連線。 然後,此範例會傳遞 SQL SELECT 語句的字串,以及用來連接到數據源的字串,以準備數據源上的預存程式。
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
備註
CommandType如果屬性設定TableDirect
為 ,Prepare則不會執行任何動作。 如果 CommandType 設定為 StoredProcedure
,則呼叫 Prepare 應該會成功,不過它可能會導致無作業。
呼叫 Prepare之前,請在語句中指定要備妥之每個參數的數據類型。 對於具有可變長度數據類型的每個參數,您必須將 Size 屬性設定為所需的大小上限。 Prepare 如果不符合這些條件,則傳回錯誤。
如果您在呼叫 Prepare之後呼叫Execute
方法,則任何大於 Size 屬性所指定值的參數值都會自動截斷為參數的原始指定大小,而且不會傳回任何截斷錯誤。
輸出參數 (是否已備妥) 必須具有使用者指定的數據類型。 如果您指定可變長度數據類型,您也必須指定 [大小上限]。