データベースが存在するかどうかを確認するコードを作成しました。存在しない場合は、ローカル ディレクトリからデータベースをアタッチしようとしています。私のコードは次のとおりです。
SqlConnection con = new SqlConnection(@"Data Source=CENSYS08\SQLEXPRESS;Initial Catalog=master;Integrated Security=True");
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select name from sys.databases", con);
DataTable dt = new DataTable();
da.Fill(dt);
string[] array = dt
.AsEnumerable()
.Select(row => row.Field<string>("Name"))
.ToArray();
if(!array.Contains("cstmrDB",StringComparer.OrdinalIgnoreCase))
{
SqlCommand cmd = new SqlCommand("sp_attach_db");
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@dbname", "cstmrDB");
cmd.Parameters.AddWithValue("@filename1", @"C:\Naresh WORK AREA\My Projects\AttachDB\Data\cstmrDB.mdf");
cmd.ExecuteNonQuery();
}
もう1つ、ローカルファイルにthisとして許可を与えました。として例外をスローしているイベント
物理ファイル「C:\Naresh WORK AREA\My Projects\AttachDB\Data\cstmrDB.mdf」を開けません。オペレーティング システム エラー 2:「2(指定されたファイルが見つかりません。)」。
データベースを SQL サーバーに接続するにはどうすればよいですか。