Практическое руководство: создание базы данных с помощью объекта Engine (программным образом)
В этом разделе описывается программный способ создания базы данных SQL Server Compact через вызов метода CreateDatabase объекта SqlServerCe.Engine. Дополнительные сведения об использовании пространства имен SqlServerCe см. в справочной документации по пространству имен SqlServerCe.
Процедуры SQL Server Compact 4.0
Создание базы данных при помощи объекта Engine
Инициализируйте новый объект Engine.
SqlCeEngine engine = new SqlCeEngine();
Настройте свойство LocalConnectionString объекта Engine. В свойстве LocalConnectionString указываются имя и расположение создаваемой базы данных, а при необходимости — дополнительные параметры базы данных, включая шифрование.
eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1049;" + "Password='<enterStrongPasswordHere>';";
Для создания базы данных вызовите метод CreateDatabase.
engine.CreateDatabase();
Создание базы данных с учетом регистра с помощью объекта Engine
Инициализируйте новый объект Engine.
SqlCeEngine engine = new SqlCeEngine();
Настройте свойство LocalConnectionString объекта Engine. В свойстве LocalConnectionString указываются имя и расположение создаваемой базы данных и, возможно, дополнительные параметры базы данных, в том числе учет регистра.
eng.LocalConnectionString= "Data Source='Test.sdf'; LCID=1049;" + "Password='<enterStrongPasswordHere>'; Case Sensitive = TRUE;";
Для создания базы данных вызовите метод CreateDatabase.
engine.CreateDatabase();
Пример
В первом примере создается база данных с именем Test.sdf.
System.IO.File.Delete("Test.sdf");
string connString = "Data Source = 'Test.sdf'; LCID=1049; Password = <enterStrongPasswordHere>;";
SqlCeEngine engine = new SqlCeEngine(connString);
engine.CreateDatabase();
System.IO.File.Delete("Test.sdf")
Dim connString As String = "Data Source='Test.sdf'; LCID=1049; Password=<enterStrongPasswordHere>; Encrypt = TRUE;"
Dim engine As New SqlCeEngine(connString)
engine.CreateDatabase()
Во втором примере используется свойство LocalConnectionString, которое поддерживает дополнительное свойство типа Boolean с именем «Case Sensitive» или «CaseSensitive». Это свойство может иметь значение true или false. Значением по умолчанию всегда является false. Учет регистра введен, начиная с версии SQL Server Compact 3.5 с пакетом обновления 1 (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");
// 1049: specifies the English locale with collation
// SQL_Latin1_General_CP1_CI_AS
string connStr =
"Data Source='Test.sdf'; LCID=1049; 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=1049; Case Sensitive = TRUE";
// 1049: 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
' 1049: specifies the English locale with collation
' SQL_Latin1_General_CP1_CI_AS
Dim connStr As String = "Data Source='Test.sdf'; LCID=1049; 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=1049; Case Sensitive = TRUE"
' 1049: 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