방법: Engine 개체를 사용하여 데이터베이스 만들기(프로그래밍 방식)

이 항목에서는 SqlServerCe.Engine 개체의 CreateDatabase 메서드를 사용하여 SQL Server Compact 데이터베이스를 프로그래밍 방식으로 만드는 방법에 대해 설명합니다. SqlServerCe 네임스페이스를 사용하는 방법은 SqlServerCe 네임스페이스 참조 설명서를 참조하십시오.

Engine 개체를 사용하여 데이터베이스를 생성하려면

  1. Engine 개체를 초기화합니다.

    SqlCeEngine engine = new SqlCeEngine();
    
  2. Engine 개체의 LocalConnectionString 속성을 설정합니다. LocalConnectionString 속성은 생성될 데이터베이스의 이름과 위치를 지정하며 암호화와 같은 추가 데이터베이스 옵션을 지정할 수도 있습니다.

    eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1033;" +
       "Password='<enterStrongPasswordHere>';";
    
  3. CreateDatabase 메서드를 호출하여 데이터베이스를 만듭니다.

    engine.CreateDatabase();
    

Engine 개체를 사용하여 대/소문자 구분 데이터베이스를 만들려면

  1. Engine 개체를 초기화합니다.

    SqlCeEngine engine = new SqlCeEngine();
    
  2. Engine 개체의 LocalConnectionString 속성을 설정합니다. LocalConnectionString 속성은 생성될 데이터베이스의 이름과 위치를 지정하며 대/소문자 구분과 같은 추가 데이터베이스 옵션을 지정할 수도 있습니다.

    eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1033;" +
       "Password='<enterStrongPasswordHere>'; Case Sensitive = TRUE;";
    
  3. CreateDatabase 메서드를 호출하여 데이터베이스를 만듭니다.

    engine.CreateDatabase();
    

첫 번째 예에서는 Test.sdf라는 새 데이터베이스를 만듭니다.

System.IO.File.Delete("Test.sdf");
string connString = "Data Source = 'Test.sdf'; LCID=1033; Password = <enterStrongPasswordHere>;";
SqlCeEngine engine = new SqlCeEngine(connString);
engine.CreateDatabase();

두 번째 예에서는 "대/소문자 구분" 또는 "CaseSensitive"라고 하는 추가 Boolean 속성을 지원하는 LocalConnectionString 속성을 사용합니다. 이 속성은 true 또는 false 값을 포함할 수 있습니다. 기본값은 항상 false입니다. 이 속성은 SQL Server Compact 3.5 SP1 릴리스부터 도입되었습니다. 자세한 내용은 데이터 정렬 작업(SQL Server Compact)을 참조하십시오.

다음 코드 예에서는 LocalConnectionString 속성을 사용하여 연결 문자열에 대/소문자 구분 속성을 설정하는 방법을 보여 줍니다. 그리고 나서 코드 예에서 GetDatabaseInfo 메서드를 사용하여 데이터베이스의 로캘, 암호화 모드 및 대/소문자 구분 설정을 검색합니다.

// First approach: 
// Create a case-sensitive database by using the SqlCeEngine 
// constructor.
if (File.Exists("Test.sdf"))
    File.Delete("Test.sdf");

// 1033: specifies the English locale with collation 
// SQL_Latin1_General_CP1_CI_AS
string connStr = 
   "Data Source='Test.sdf'; LCID=1033; Case Sensitive = TRUE";

SqlCeEngine engine = new SqlCeEngine(connStr);
engine.CreateDatabase();
engine.Dispose();

// Second approach: 
// Create a case-sensitive database by using the LocalConnectionString 
// property.
if (File.Exists("Test.sdf"))
   File.Delete("Test.sdf");

SqlCeEngine engine2 = new SqlCeEngine();

engine2.LocalConnectionString = 
   "Data Source='Test.sdf'; LCID=1033; Case Sensitive = TRUE";
// 1033: specifies the English locale with collation 
// SQL_Latin1_General_CP1_CI_AS
engine2.CreateDatabase();
engine2.Dispose();

SqlCeConnection conn = null;

try
{
   conn = new SqlCeConnection(connStr);
   conn.Open();

   //Retrieve the connection string information - 
   // notice the 'Case Sensitive' value
   List<KeyValuePair<string, string>> dbinfo = conn.GetDatabaseInfo();

   Console.WriteLine("\nGetDatabaseInfo() results:");

   foreach (KeyValuePair<string, string> kvp in dbinfo)
   {
      Console.WriteLine(kvp);
   }
   }
   catch (Exception ex)
   {
      Console.WriteLine(ex.Message);
   }
   finally
   {
      conn.Close();
      Console.WriteLine("\n\n\nPress any key to continue...");
      Console.Read();
   }

' First approach: 
' Create a case sensitive database by using the SqlCeEngine 
' constructor.
If File.Exists("Test.sdf") Then
    File.Delete("Test.sdf")
End If

' 1033: specifies the English locale with collation 
' SQL_Latin1_General_CP1_CI_AS
Dim connStr As String = "Data Source='Test.sdf'; LCID=1033; Case Sensitive = TRUE"

Dim engine As New SqlCeEngine(connStr)
engine.CreateDatabase()
engine.Dispose()

' Second approach: 
' Create a case-sensitive database by using the LocalConnectionString 
' property.
If File.Exists("Test.sdf") Then
    File.Delete("Test.sdf")
End If

Dim engine2 As New SqlCeEngine
engine2.LocalConnectionString = _
    "Data Source='Test.sdf'; LCID=1033; Case Sensitive = TRUE"
    ' 1033: specifies the English locale with collation 
    ' SQL_Latin1_General_CP1_CI_AS
engine2.CreateDatabase()
engine2.Dispose()

Dim conn As SqlCeConnection = Nothing

Try
    conn = New SqlCeConnection(connStr)
    conn.Open()

    'Retrieve the connection string information - 
    ' notice the 'Case Sensitive' value
    Dim dbinfo As List(Of KeyValuePair(Of String, String)) = conn.GetDatabaseInfo

    Console.WriteLine(ChrW(10) & "GetDatabaseInfo() results:")

    Dim kvp As KeyValuePair(Of String, String)

    For Each kvp In dbinfo
        Console.WriteLine(kvp)
    Next
Catch ex As Exception
    Console.WriteLine(ex.Message)
Finally
    conn.Close()
    Console.WriteLine(vbNewLine & vbNewLine & vbNewLine & "Press any key to continue...")
    Console.Read()
End Try

표시: