SQL Server 2014 LocalDB (.mdf
ファイル) を使用する単純な Windows アプリケーションがあります。
また、ユーザーが終了ボタンをクリックするたびに、アプリケーションが localdb ファイル ( .mdf
) をユーザーの同じコンピューター内の別のフォルダーに自動的にバックアップするようにしたいと考えています。
以下に簡単なコードを書きましたが、SQLException 構文エラーが発生しました。
「C:\greendb_angelheart.mdf」付近の構文が正しくありません
(DATABASE ""{0}""
構文は問題ないようです)
localdb
そして、通常のSqlConnection
コードを使用して特定のファイルに接続することが正しいかどうかが心配です。
私の簡単なコードは次のとおりです。
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if (MessageBox.Show("Really want to exit? Thank you !", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
{
e.Cancel = true;
}
else
{
string backuppath_basic = @"c:\Green_Backup";
if (!System.IO.Directory.Exists("backuppath_basic"))
{
System.IO.Directory.CreateDirectory(backuppath_basic);
}
var greendbfileName = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), string.Format("greendb_{0}.mdf", personID));
var copied_greendbfileName = string.Format(@"C:\greendb_{0}.mdf", personID);
string localConnectionString = string.Format(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename= " + Environment.GetEnvironmentVariable("APPDATA") + @"\greendb_{0}.mdf;Integrated Security=True;Connect Timeout=30;", personID);
SqlConnection backupConn = new SqlConnection();
backupConn.ConnectionString = localConnectionString;
backupConn.Open();
SqlCommand backupcomm = backupConn.CreateCommand();
string backupdb = @"BACKUP DATABASE ""{0}"" TO DISK '{1}'";
backupdb = string.Format(backupdb, greendbfileName, copied_greendbfileName);
SqlCommand backupcreatecomm = new SqlCommand(backupdb, backupConn);
backupcreatecomm.ExecuteNonQuery();
backupConn.Close();
Environment.Exit(0);
}
}