Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据库添加到现有SQL Server 2008_C#_Sql_Database - Fatal编程技术网

C# 将数据库添加到现有SQL Server 2008

C# 将数据库添加到现有SQL Server 2008,c#,sql,database,C#,Sql,Database,我花了很多时间试图研究外部资源,但不同的解决方案似乎比我希望的要复杂得多 我正在努力实现以下目标: 在此本地计算机上的现有SQL实例上创建简单数据库 安全性应该只是一个简单的用户名和密码 不需要其他选项(日志、增长、最大大小等) 这是我第一次尝试将数据库集成到我的程序中。使用SQLite或SMO一开始似乎有点难以承受。我一直在尝试修改此示例代码以使其正常工作: private void createDatabase() { String str; SqlConnection

我花了很多时间试图研究外部资源,但不同的解决方案似乎比我希望的要复杂得多

我正在努力实现以下目标:

  • 在此本地计算机上的现有SQL实例上创建简单数据库
  • 安全性应该只是一个简单的用户名和密码
  • 不需要其他选项(日志、增长、最大大小等)
这是我第一次尝试将数据库集成到我的程序中。使用SQLite或SMO一开始似乎有点难以承受。我一直在尝试修改此示例代码以使其正常工作:

private void createDatabase()
{
    String str;
    SqlConnection myConn = new SqlConnection("Server=" + serverName + ";Integrated security=SSPI;database=master");

    str = "CREATE DATABASE " + dbName + " ON PRIMARY " +
           "(NAME = " + dbName + "_Data, " +
           "FILENAME = 'C:\\" + dbName + ".mdf', " +
           "SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
           "LOG ON (NAME = " + dbName + "_Log, " +
           "FILENAME = 'C:\\" + dbName + ".ldf', " +
           "SIZE = 1MB, " +
           "MAXSIZE = 5MB, " +
           "FILEGROWTH = 10%)";

    SqlCommand myCommand = new SqlCommand(str, myConn);
    try
    {
        myConn.Open();
        myCommand.ExecuteNonQuery();
        MessageBox.Show("DataBase is Created Successfully", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    catch (System.Exception ex)
    {
        MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    finally
    {
        if (myConn.State == ConnectionState.Open)
        {
            myConn.Close();
        }
    }
}
关于如何创建一个简单的查询字符串或创建一个数据库有什么想法吗?如果有更好的方法,那很好,但请记住,我正试图从一开始就让它尽可能简单

使用SMO:

    Server server = new Server("servername");
    Database db = new Database(server, "MyDatabaseName");
    db.Create();
要构建SMO应用程序,需要引用SMO程序集。单击“添加引用”并导航到该文件夹

C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies
添加对这些程序集的引用:

  • Microsoft.SqlServer.ConnectionInfo.dll
  • Microsoft.SqlServer.Smo.dll
  • Microsoft.SqlServer.Management.Sdk.Sfc.dll
  • Microsoft.SqlServer.SqlEnum.dll
将此using语句添加到包含上述代码的文件中:

using Microsoft.SqlServer.Management.Smo;
旁注:


如果您获取在
str
中生成的SQL并在SSMS中运行它,会发生什么情况?建议:在
Try catch
块中尝试使用
。使用将关闭连接,如果
使用
.close()
引发任何异常,您可以捕获它
捕获
块。我得到一个访问被拒绝错误。我也无法在该位置创建.mdf文件。我知道在SQL实例中登录到另一个数据库的信誉,但不知道如何在创建数据库时应用这些信誉。我也不知道把.mdf文件放在哪里,或者其他文件存储在哪里。我似乎找不到那些引用!我使用的是.NET Framwork 4.0,因此下面的示例是:我找不到正确的.NET引用。如何检查,我有SQL 2008 R2。微软的网站没有完全的帮助(令人惊讶)好吧,安装了共享管理实用程序。浏览并添加所列程序集的引用,使用Microsoft.SqlServer为
添加这些
Usings
;使用Microsoft.SqlServer.Server;使用Microsoft.SqlServer.Management,仍然获取未找到的类型或命名空间错误…是否缺少某些内容?