0

我从事 C# 项目 (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;

但是当我的程序运行时,我看到以下错误

在此处输入图像描述

我的问题是什么?

4

1 回答 1

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

于 2012-07-11T15:22:02.173 回答