我在C#Project(WinForm)上工作
我在客户端PC上安装Sql Server 2008 Express。
在我的程序开始中必须创建一个数据库。所以我使用此代码创建数据库:
string sqlCreateDBQuery;
SqlConnection tmpConn = new SqlConnection(@"SERVER =.\SQLEXPRESS; Trusted_Connection = yes;DATABASE = master;");
sqlCreateDBQuery = " CREATE DATABASE "
+ DatabaseName
+ " ON PRIMARY "
+ " (NAME = " + DatabaseName + ", "
+ " FILENAME = '" + @"C:" + @"\" + DatabaseName + ".mdf" + "', "
+ " SIZE = 3MB,"
+ " FILEGROWTH = " + "10%" + ") "
+ " LOG ON (NAME =" + "MyDatabase_Log" + ", "
+ " FILENAME = '" + @"C:" + @"\" + DatabaseName + "_log.ldf" + "', "
+ " SIZE = 1MB, "
+ " FILEGROWTH = " + "10%" + ") ";
sqlCreateDBQuery = Coomand;
SqlCommand myCommand = new SqlCommand(sqlCreateDBQuery, tmpConn);
try
{
tmpConn.Open();
MessageBox.Show(sqlCreateDBQuery);
myCommand.ExecuteNonQuery();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
tmpConn.Close();
}
return;
但当我的程序运行时,我看到以下错误
我的问题是什么?
答案 0 :(得分:0)
从错误消息中可以看出,您无权在根目录上创建mdf文件。说实话,你不应该把它放在那里,因为那太暴露了。将它放在应用程序的文件夹中,或隐藏在不会被意外删除的地方。
我还认为您应该将其作为初始设置的安装脚本运行,而不是在代码中运行。我是尽可能多地保持sql代码的主要支持者,但是对于他自己的代码。您说您设置了SQL Server数据库,您应该使用您可以使用的工具来使您更轻松。我有一本来自Wrox的书很好地为我服务,这里是链接:http://www.wrox.com/WileyCDA/WroxTitle/Wrox-s-SQL-Server-2005-Express-Edition-Starter-Kit.productCd-0764589237.html - 亚马逊有2美元 - http://www.amazon.com/Server-Express-Edition-Starter-Programmer/dp/B006TQYC8U/ref=sr_1_1?ie=UTF8&qid=1342019983&sr=8-1&keywords=Wrox%27s+SQL+Server+2005+Express+Edition+Starter+Kit
此外:
http://msdn.microsoft.com/en-us/library/bb264562(v=sql.90).aspx