我已经创建了一个WPF 4.5 .NET应用程序,它具有数据库备份功能。在调试时,函数和备份工作正常,但是当我将它发布到ClickOnce中并将其安装到目标机器中时,除备份之外的所有工作都将正常工作,因为ClickOnce模糊了应用程序文件夹位置,因此备份语句运行时间过长!有没有办法让备份声明更短?这里是我的代码和错误,我得到: 代码:在ClickOnce中备份localDB数据库
SaveFileDialog sfd = new SaveFileDialog();
string stringCon = @"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\whdb.mdf;Integrated Security=True";
string dbPath = Application.StartupPath + @"\whdb.mdf";
if (sfd.ShowDialog() == DialogResult.OK)
{
using (SqlConnection conn = new SqlConnection(stringCon))
{
string backupStmt = string.Format(@"backup database @whdb to disk='{0}' WITH INIT ", sfd.FileName);
using (SqlCommand sqlComm = new SqlCommand(backupStmt, conn))
{
sqlComm.Parameters.AddWithValue("@whdb", dbPath);
conn.Open();
sqlComm.ExecuteNonQuery();
conn.Close();
}
}
)
**************异常文本**************
System.Data.SqlClient.SqlException (0x80131904): Invalid database name 'C:\Users\Abubaker\AppData\Local\Apps\2.0\52WR4JTO.12O\D6M4D7OQ.Z3D\sa3a..tion_fef19ab42c2b8f22_0001.0000_9fc10c82bbf23ed2\whdb.mdf' specified for backup or restore operation.
BACKUP DATABASE is terminating abnormally.
不工作!问题仍然存在,因为我必须在备份语句中使用Application.StartupPath!连接字符串很好 – user7586828
我知道将localDB附加到项目和发布的过程。也许,您需要了解|数据目录|。祝你好运 ! –