如何使用“代码”创建新的 .mdf/.sdf 数据库?
我试过这个: http://support.microsoft.com/kb/307283
它所做的只是在 ConnectionString 上失败。由于我没有连接到创建文件之前就存在的文件,我如何才能连接到 SQL Express Server 来创建 mdf/sdf 数据库?
我希望能够连接到服务器并创建文件,从那里创建表格等可能会更容易。
有什么建议吗?
最佳答案
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();
}
}
}
将 Catalog=tempdb
更改为 Catalog=master
,效果很好
示例使用:
var filename = System.IO.Path.Combine("D:\\", "testdb.mdf");
if (!System.IO.File.Exists(filename))
{
CreateSqlDatabase(filename);
}
关于c# - 动态创建.mdf/.sdf 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10481890/