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 3.5 mediante el método CreateDatabase del objeto SqlServerCe.Engine object. Para obtener más información sobre cómo usar el espacio de nombres SqlServerCe, consulte la documentación de referencia sobre el espacio de nombres SqlServerCe.
Procedimientos para SQL Server Compact 3.5
Para crear una base de datos con el objeto Engine
Inicialice un nuevo objeto Engine.
SqlCeEngine engine = new SqlCeEngine();
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>'; Encrypt = TRUE;";
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
Inicialice un nuevo objeto Engine.
SqlCeEngine engine = new SqlCeEngine();
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;";
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>; 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()
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
Otros recursos
Información general del motor de base de datos (SQL Server Compact)