动态创建.mdf/.sdf数据库

Deu*_*ion 11 c# database sql-server sql-server-ce dynamically-generated

如何使用"代码"创建一个新的.mdf/.sdf数据库?

我试过这个:http: //support.microsoft.com/kb/307283

它只是在ConnectionString上失败了.由于我在创建之前没有连接到存在的文件,我怎么才能只创建一个mdf/sdf数据库来连接到SQL Express Server?

我希望能够只连接到服务器并创建文件,从那里可能更容易创建表等.

有什么建议?

小智 20

public static void CreateSqlDatabase(string filename)
{
    string databaseName = System.IO.Path.GetFileNameWithoutExtension(filename);
    using (var connection = new System.Data.SqlClient.SqlConnection(
        "Data Source=.\\sqlexpress;Initial Catalog=tempdb; Integrated Security=true;User Instance=True;"))
    {
        connection.Open();
        using (var command = connection.CreateCommand())
        {
            command.CommandText =
                String.Format("CREATE DATABASE {0} ON PRIMARY (NAME={0}, FILENAME='{1}')", databaseName, filename);
            command.ExecuteNonQuery();

            command.CommandText =
                String.Format("EXEC sp_detach_db '{0}', 'true'", databaseName);
            command.ExecuteNonQuery();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

更改Catalog=tempdbCatalog=master,其良好的工作

样品用途:

var filename = System.IO.Path.Combine("D:\\", "testdb.mdf");
if (!System.IO.File.Exists(filename))
{
    CreateSqlDatabase(filename);
}
Run Code Online (Sandbox Code Playgroud)