亚马逊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似乎必须指定一个现有的文件路径。
我已经在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
要找出可以在以下目录中创建数据库:
- 用简单的方法创建数据库DB1
-
找出数据库文件的位置:
使用DB1去EXEC sp_helpfile转到
-
使用该目录中的文件创建一个数据库。