我使用sql数据库制作一个项目,它在Visual Studio 2012中没有任何错误,但在发布并安装之后,当我进行备份时显示以下错误
"数据库&C; \用户\ LU \ AppData \ Local \ Apps \ 2.0 \ D9HBHD8T.Y1H \ 5B2JMG1T.N8W \ game..tion_60f48512c0fd7b6a_0001.0000_7a5b2d8ced8c74c0 \ gamedata.mdf'不存在。确保名称是 输入正确。 BACKUP DATABASE异常终止。"
这是我的程序
CREATE proc dbackup
@databaseName sysname,
@path nvarchar(400)
as
backup database @databaseName to disk = @path with init
return
这是我的备用代码:
private void button1_Click(object sender, EventArgs e)
{
DataBase db=new DataBase();
try
{
db.connect();
SqlCommand oCommand = new SqlCommand(@"dbackup",db.sqlcon);
oCommand.CommandType = CommandType.StoredProcedure;
oCommand.Parameters.AddWithValue("@databaseName", Application.StartupPath + "\\gamedata.mdf");
oCommand.Parameters.AddWithValue("@path", textBox1.Text);
oCommand.ExecuteNonQuery();
MessageBox.Show("Backup Created Sucessfully");
}
catch (Exception ex)
{
MessageBox.Show("Error Occurd :" + ex.Message);
}
finally
{
db.disconnect();
}
this.Close();
}
答案 0 :(得分:1)
如果您使用ClickOnce部署应用程序,请不要使用Application.StartupPath
来存储数据库。
您似乎正在使用SQL Server的LocalDB版本。您可以正确使用文件的全名作为backup database
命令的参数。
但是ClickOnce安装文件夹的名称是混淆的,所以它在SQL语句中不起作用。
在安装后首次启动应用程序时,必须将.mdf
文件从安装文件夹复制到其他本地文件夹,并将该文件夹用于数据。