私はDatabase2.mdfという新しいMicrosoft SQLデータベースを作成する必要のある単純なC#関数を持っています。SQLデータベースを作成する単純な関数が失敗します:何が間違っていますか?
問題:この関数はデータベースの作成に失敗します&私はなぜそれが分かりませんか?データベースを作成する方法を示すMSDNのコードをコピーしましたが、SqlConnection文字列またはSQLCommand文字列が正しいかどうかわかりません。発生
エラーは次のとおりです。
{"A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"}
マイコード:
public static string DEF_DB_NAME = "Database2";
private bool create()
{
Console.WriteLine("populating data");
bool res = false;
SqlConnection myConn = new SqlConnection("Server=localhost;Integrated security=SSPI;database=master");
string str = "CREATE DATABASE "+DEF_DB_NAME+" ON PRIMARY " +
"(NAME = .\\SQLEXPRESS, " +
"FILENAME = " + DEF_DB_NAME + ".mdf', " +
"SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
"LOG ON (NAME = " + DEF_DB_NAME + "_Log, " +
"FILENAME = " + DEF_DB_NAME + "Log.ldf', " +
"SIZE = 1MB, " +
"MAXSIZE = 5MB, " +
"FILEGROWTH = 10%)";
SqlCommand myCommand = new SqlCommand(str, myConn);
myConn.Open(); // ERROR OCCURS HERE
myCommand.ExecuteNonQuery();
insertDefData(myConn);
myConn.Close();
res = true;
return res;
}
接続を開くことができず、クエリとは関係ありません。コマンド定義の上に 'myConn.Open()'を移動することはできますが、それは引き続き発生します。 – Fosco
プロバイダ:名前付きパイププロバイダローカルサーバーに接続しようとしていますか? –
SQL Server Expressのインスタンスがこのコンピュータで実行されているかどうかを確認しましたか? – rcdmk