Condividi tramite


Procedura: Creazione di un database tramite l'oggetto Engine (a livello di programmazione)

In questo argomento viene illustrato come creare a livello di programmazione un database di SQL Server Compact 3.5 utilizzando il metodo CreateDatabase dell'oggetto SqlServerCe.Engine. Per ulteriori informazioni sull'utilizzo dello spazio dei nomi SqlServerCe, vedere la documentazione di riferimento dello spazio dei nomi SqlServerCe.

Procedure per SQL Server Compact 3.5

Per creare un database utilizzando l'oggetto Engine

  1. Inizializzare un nuovo oggetto Engine.

    SqlCeEngine engine = new SqlCeEngine();
    
  2. Impostare la proprietà LocalConnectionString dell'oggetto Engine. La proprietà LocalConnectionString specifica il nome e il percorso del database che verrà creato e può specificare opzioni del database aggiuntive, tra cui la crittografia.

    eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1033;" +
       "Password='<enterStrongPasswordHere>'; Encrypt = TRUE;";
    
  3. Chiamare il metodo CreateDatabase per creare il database.

    engine.CreateDatabase();
    

Per creare un database con distinzione tra maiuscole e minuscole tramite l'oggetto Engine

  1. Inizializzare un nuovo oggetto Engine.

    SqlCeEngine engine = new SqlCeEngine();
    
  2. Impostare la proprietà LocalConnectionString dell'oggetto Engine. La proprietà LocalConnectionString specifica il nome e il percorso del database che verrà creato e può specificare opzioni del database aggiuntive, ad esempio la distinzione tra maiuscole e minuscole.

    eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1033;" +
       "Password='<enterStrongPasswordHere>'; Case Sensitive = TRUE;";
    
  3. Chiamare il metodo CreateDatabase per creare il database.

    engine.CreateDatabase();
    

Esempio

Nel primo esempio viene creato un nuovo database denominato Test.sdf.

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

Nel secondo esempio viene utilizzata la proprietà LocalConnectionString, che supporta una proprietà di tipo Boolean aggiuntiva denominata "Case Sensitive" o "CaseSensitive". Il valore di questa proprietà può essere true o false. Il valore predefinito è sempre false. Questa proprietà viene introdotta a partire da SQL Server Compact 3.5 SP1. Per ulteriori informazioni, vedere Utilizzo delle regole di confronto (SQL Server Compact).

Nell'esempio viene illustrato come impostare la proprietà relativa alla distinzione tra maiuscole e minuscole in una stringa di connessione utilizzando la proprietà LocalConnectionString. Successivamente nell'esempio di codice viene utilizzato il metodo GetDatabaseInfo per recuperare le impostazioni locali, la modalità di crittografia e l'impostazione relativa alla distinzione tra maiuscole e minuscole del database.

// 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

Vedere anche

Altre risorse

Panoramica del motore di database (SQL Server Compact)