【发布时间】:2020-09-20 15:43:12
【问题描述】:
public class ClassApp
{
static string ServerName = "LAPTOP-xxxxxxRK\\SQLEXPRESS";
static string DatabaseName = "NewDbInstance";
private SqlConnection tmpConn;
public void CreateDb()
{
SqlConnection tmpConn;
string sqlCreateDBQuery;
tmpConn = new SqlConnection();
tmpConn.ConnectionString = "SERVER = " + ServerName + "; Trusted_Connection=True;";
sqlCreateDBQuery = " CREATE DATABASE " + DatabaseName;
SqlCommand myCommand = new SqlCommand(sqlCreateDBQuery, tmpConn);
try
{
tmpConn.Open();
Console.WriteLine(sqlCreateDBQuery);
var result = myCommand.ExecuteNonQuery();
Console.WriteLine(result);
Console.WriteLine("Database has been created successfully!");
if (result == -1)
{
RunScript(DatabaseName);
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public void RunScript(string dbName)
{
FileInfo file = new FileInfo("C:\\Users\\ADMIN\\script.sql");
string script = file.OpenText().ReadToEnd();
script = script.Replace("GO", "");
SqlConnection tmpConn;
tmpConn = new SqlConnection();
tmpConn.ConnectionString = "Server=LAPTOP-xxxxxxRK\\SQLEXPRESS;" + "Database=" + dbName + "; Trusted_Connection=True;";
tmpConn.Open();
SqlCommand myCommandnew = new SqlCommand(script, tmpConn);
var resultnew = myCommandnew.ExecuteNonQuery(); //Error comes here
Console.WriteLine(resultnew);
tmpConn.Close();
}
所以我有两个问题
- 当我使用 C# 运行此 SQL 文件时,出现错误
'CREATE SCHEMA' 必须是查询批处理中的第一条语句。
如何解决这个问题?
- 如果创建数据库不存在,如何修改代码?
【问题讨论】:
-
观察:如果您的 ASP.NET 域帐户有权创建数据库:它可能以太多的数据库权限运行 - 所以通常我会说“不要解决这个问题” - 单独创建数据库,不是在网站中
-
哪一行会抛出你的错误?
-
第9行RunScript显示错误
标签: c# sql sql-server asp.net-mvc entity-framework