다음을 통해 공유


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는 아무 작업도 수행하지 않습니다. CommandTypeStoredProcedure로 설정하면 결과가 no-op이더라도 Prepare 호출이 성공해야 합니다.

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 네임스페이스

기타 리소스

명령 사용