Partager via


Procédure : créer une base de données à l'aide de l'objet Engine (par programme)

Dans cette rubrique, vous allez apprendre à créer par programme une base de données SQL Server Compact à l'aide de la méthode CreateDatabase de l'objet SqlServerCe.Engine. Pour plus d'informations sur l'utilisation de l'espace de noms SqlServerCe, consultez la documentation de référence sur l'espace de noms SqlServerCe.

Procédures pour SQL Server Compact 4.0

Pour créer une base de données à l'aide de l'objet Engine

  1. Initialisez un nouvel objet Engine.

    SqlCeEngine engine = new SqlCeEngine();
    
  2. Définissez la méthode LocalConnectionString de l'objet Engine. La propriété LocalConnectionString spécifie le nom et l'emplacement de la base de données à créer. Elle peut également spécifier d'autres options de base de données telles que le chiffrement.

    eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1033;" +
       "Password='<enterStrongPasswordHere>';";
    
  3. Appelez la méthode CreateDatabase pour créer la base de données.

    engine.CreateDatabase();
    

Pour créer une base de données qui respecte la casse à l'aide de l'objet Engine

  1. Initialisez un nouvel objet Engine.

    SqlCeEngine engine = new SqlCeEngine();
    
  2. Définissez la méthode LocalConnectionString de l'objet Engine. La propriété LocalConnectionString spécifie le nom et l'emplacement de la base de données à créer. Elle peut également spécifier d'autres options de base de données telles que le respect de la casse.

    eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1033;" +
       "Password='<enterStrongPasswordHere>'; Case Sensitive = TRUE;";
    
  3. Appelez la méthode CreateDatabase pour créer la base de données.

    engine.CreateDatabase();
    

Exemple

Le premier exemple crée une base de données nommée 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();
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()

Le deuxième exemple utilise la propriété LocalConnectionString, qui prend en charge une propriété Boolean supplémentaire nommée « Case Sensitive » ou « CaseSensitive ». Cette propriété peut avoir une valeur true ou false. Sa valeur par défaut est toujours false. Cette propriété est disponible à compter de la version SQL Server Compact 3.5 SP1. Pour plus d'informations, consultez Utilisation des classements (SQL Server Compact).

L'exemple suivant montre comment définir la propriété de respect de la casse dans une chaîne de connexion à l'aide de la propriété LocalConnectionString. Ensuite, il utilise la méthode GetDatabaseInfo pour extraire les paramètres régionaux, le mode de chiffrement et un paramètre de respect de la casse de la base de données :

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

Voir aussi

Concepts

Vue d'ensemble du moteur de base de données (SQL Server Compact)