亚马逊AWS RDS-如何用C#编程创建MS SQL数据库

本文关键字:创建 MS SQL 数据库 编程 AWS RDS- 何用 亚马逊 | 更新日期: 2023-09-27 18:20:41

我创建了一个运行MS SQL的Amazon AWS RDS实例。我已经能够成功地用程序在C#中创建一个数据库,使用:

SqlConnection myConn = new SqlConnection("Data Source=<public-ip-name>;Persist Security Info=True;User ID=<userid>;PWD=<pwd>;");
myConn.Open();
string str = "CREATE DATABASE contacts";
SqlCommand cmd = new SqlCommand(str, myConn);
cmd.ExecuteNonQuery();

然而,我还没能让一个更复杂的连接字符串工作:

        str = "CREATE DATABASE contacts ON PRIMARY " +
            "(NAME = Contacts_Data, " +
            @"FILENAME = 'c:'contacts.mdf', " +
            "SIZE = 4MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
            "LOG ON (NAME = Contacts_Log, " +
            @"FILENAME = 'c:'contacts.ldf', " +
            "SIZE = 1MB, " +
            "MAXSIZE = 5MB, " +
            "FILEGROWTH = 10%)";

错误(5)似乎抱怨C:''无法写入。也许它不存在?如果我省略了FILENAME,一个错误会抱怨我省略了它。FILENAME的正确值是多少?FILENAME似乎必须指定一个现有的文件路径。

亚马逊AWS RDS-如何用C#编程创建MS SQL数据库

我已经在C#中对jtseng的答案进行了编码

static string GetDBPath(SqlConnection myConn, string db = "master")
{
  string sqlstr = "USE " + db + "; EXEC sp_helpfile";
  SqlCommand command = new SqlCommand(sqlstr, myConn);
  SqlDataReader reader = command.ExecuteReader(CommandBehavior.SingleRow);
  reader.Read();
  string filename = reader["filename"].ToString();
  string directory = System.IO.Path.GetDirectoryName(filename);
  return directory;
}

通过:呼叫

SqlConnection myConn = new SqlConnection("Data Source=<public ip>;Persist Security Info=True;User ID=<userid>;PWD=<pwd>;");
myConn.Open();
string dbPath = GetDBPath(myConn); // default db is master

要找出可以在以下目录中创建数据库:

  1. 用简单的方法创建数据库DB1
  2. 找出数据库文件的位置:

    使用DB1去EXEC sp_helpfile转到

  3. 使用该目录中的文件创建一个数据库。