SqlCeResultSet.Insert 메서드 (SqlCeUpdatableRecord)

지정된 SqlCeUpdatableRecord를 내부 행 집합에 삽입합니다.

네임스페이스:  System.Data.SqlServerCe
어셈블리:  System.Data.SqlServerCe(System.Data.SqlServerCe.dll)

public void Insert(
	SqlCeUpdatableRecord record
)

매개 변수

record
유형: System.Data.SqlServerCe.SqlCeUpdatableRecord
삽입할 레코드입니다.

레코드를 삽입해도 SqlCeResultSet의 현재 위치가 변경되지 않습니다.

이 함수를 호출하면 작업을 완료하기 위해 추가 호출을 할 필요 없이 즉시 삽입이 수행됩니다.

지정된 레코드의 열 수가 정의된 내부 행 집합보다 큰 경우 예외가 throw됩니다. 더 적은 수의 값을 지정하면 나머지 열은 null 값을 허용하거나 정의된 기본값을 가져야 합니다.

이 함수가 업데이트할 수 없는 SqlCeResultSet에서 호출되거나 판독기가 올바른 레코드에 배치되지 않은 경우 InvalidOperationException이 throw됩니다.

SqlCeConnection conn = null;

try
{
    File.Delete("Test.sdf");

    SqlCeEngine engine = new SqlCeEngine("Data Source = Test.sdf");
    engine.CreateDatabase();

    conn = new SqlCeConnection("Data Source = Test.sdf");
    conn.Open();

    SqlCeCommand cmd = conn.CreateCommand();
    cmd.CommandText = "CREATE TABLE myTable (col1 INT)";
    cmd.ExecuteNonQuery();

    cmd.CommandText = "SELECT * FROM myTable";

    SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable |
        ResultSetOptions.Scrollable);

    SqlCeUpdatableRecord rec = rs.CreateRecord();

    // Insert 10 records
    //
    for (int i = 0; i < 10; i++)
    {
        rec.SetInt32(0, i);
        rs.Insert(rec);
    }

    // Update the 5th record
    //
    if (true == rs.ReadAbsolute(5))
    {
        rs.SetInt32(0, 55);
        rs.Update();
    }

    // Delete the 2nd record
    //
    if (true == rs.ReadAbsolute(2))
    {
        rs.Delete();
    }
}
catch (Exception e)
{
    MessageBox.Show(e.Message);
}
finally
{
    conn.Close();
}


표시: