OleDbCommand.Prepare 方法

定義

在資料來源上建立命令已備妥 (或已編譯) 的版本。

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 ()

實作

例外狀況

Connection 未設定。

-或-

Connection 沒有開啟。

範例

下列範例會 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 屬性所指定值的參數值都會自動截斷為參數的原始指定大小,而且不會傳回任何截斷錯誤。

輸出參數 (是否已備妥) 必須具有使用者指定的數據類型。 如果您指定可變長度數據類型,您也必須指定 [大小上限]。

適用於

另請參閱