OleDbCommand.Prepare 方法

在数据源上创建该命令的准备好的(或已编译的)版本。

**命名空间:**System.Data.OleDb
**程序集:**System.Data(在 system.data.dll 中)

语法

声明
Public Overrides Sub Prepare
用法
Dim instance As OleDbCommand

instance.Prepare
public override void Prepare ()
public:
virtual void Prepare () override
public void Prepare ()
public override function Prepare ()

异常

异常类型 条件

InvalidOperationException

未设置 Connection

- 或 -

Connection 未打开。

备注

如果 CommandType 属性设置为 TableDirect,则 Prepare 不会执行任何操作。如果 CommandType 设置为 StoredProcedure,则对 Prepare 的调用应该会成功(虽然它可能导致无操作 (no-op))。

在调用 Prepare 之前,应指定要准备的语句中的每个参数的数据类型。对于每个具有可变长度数据类型的参数,必须将 Size 属性设置为所需的最大大小。如果不满足这些条件,则 Prepare 会返回错误。

如果在调用 Prepare 之后调用 Execute 方法,则任何大于 Size 属性所指定值的参数值都会自动截断至该参数的初始指定大小,并且不会返回任何截断错误。

输出参数(无论是否已准备)必须具有用户指定的数据类型。如果指定可变长度的数据类型,则必须也指定最大的 Size

示例

下面的示例创建 OleDbCommand 并打开该连接。然后,该示例通过传递如下两个字符串在数据源上准备存储过程:一个是 SQL SELECT 语句,另一个是用于连接到数据源的字符串。

Public Sub OleDbCommandPrepare(ByVal connectionString As String)

    Using connection As OleDbConnection = New _
        OleDbConnection(connectionString)
        connection.Open()

        ' Create the Command.
        Dim command As OleDbCommand = 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
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();
    }
}

平台

Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

请参见

参考

OleDbCommand 类
OleDbCommand 成员
System.Data.OleDb 命名空间

其他资源

使用命令