Share via


Cómo crear una base de datos con el objeto Engine (mediante programación)

En este tema, aprenderá a crear con programación una base de datos de SQL Server Compact mediante el método CreateDatabase del objeto SqlServerCe.Engine. Para obtener más información sobre cómo usar el espacio de nombres SqlServerCe, vea la documentación de referencia sobre el espacio de nombres SqlServerCe.

Procedimientos para SQL Server Compact 4.0

Para crear una base de datos con el objeto Engine

  1. Inicialice un nuevo objeto Engine.

    SqlCeEngine engine = new SqlCeEngine();
    
  2. Establezca la propiedad LocalConnectionString del objeto Engine. La propiedad LocalConnectionString especifica el nombre y la ubicación de la base de datos que se va a crear y puede especificar opciones adicionales de la base de datos, incluido el cifrado.

    eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1033;" +
       "Password='<enterStrongPasswordHere>';";
    
  3. Llame al método CreateDatabase para crear la base de datos.

    engine.CreateDatabase();
    

Para crear una base de datos con distinción de mayúsculas y minúsculas con el objeto Engine

  1. Inicialice un nuevo objeto Engine.

    SqlCeEngine engine = new SqlCeEngine();
    
  2. Establezca la propiedad LocalConnectionString del objeto Engine. La propiedad LocalConnectionString especifica el nombre y la ubicación de la base de datos que se va a crear y puede especificar opciones adicionales de la base de datos, incluida la distinción de mayúsculas y minúsculas.

    eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1033;" +
       "Password='<enterStrongPasswordHere>'; Case Sensitive = TRUE;";
    
  3. Llame al método CreateDatabase para crear la base de datos.

    engine.CreateDatabase();
    

Ejemplo

El primer ejemplo se crea una nueva base de datos denominada 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()

El segundo ejemplo utiliza la propiedad LocalConnectionString, que admite una propiedad Boolean adicional denominada "Distinguir mayúsculas de minúsculas" o "Casesensitive". Esta propiedad puede tener el valor false o true. Su valor predeterminado siempre es false. Esta propiedad se incluye a partir del lanzamiento de SQL Server Compact 3.5 Service Pack 1. Para obtener más información, vea Trabajar con intercalaciones (SQL Server Compact).

En el ejemplo se muestra cómo establecer la propiedad de distinción entre mayúsculas y minúsculas en una cadena de conexión utilizando la propiedad LocalConnectionString. A continuación, el ejemplo de código utiliza el método GetDatabaseInfo para recuperar la configuración regional, el modo de cifrado y la configuración de la distinción de mayúsculas y minúsculas de la base de datos:

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

Vea también

Conceptos

Información general del motor de base de datos (SQL Server Compact)