连接字符串和sql备份
问题描述:
我遇到以下C#代码执行备份的问题,特别是在连接字符串中。连接字符串和sql备份
的代码如下:
private void BK()
{
string strconn = @"Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\db.mdf;Integrated Security=True;User Instance=True";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = strconn;
try {
//Query per backup
string queryBK = "BACKUP DATABASE db TO DISK ='C:\\Program Files\\Microsoft SQLServer\\MSSQL10.SQLEXPRESS\\MSSQL\\Backup\\db.bak' WITH INIT, SKIP, CHECKSUM";
SqlCommand cmdBK = new SqlCommand(queryBK, conn);
conn.Open();
cmdBK.ExecuteNonQuery();
MessageBox.Show("backup effettuato");
}
catch (Exception ex) {
MessageBox.Show(ex.Message, "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally {
conn.Close();
}
}
此代码的开发PC上,但如果我在另一台PC上安装我的应用程序,它抛出这个错误:
The database does not exist. Verify that the name has been entered correctly. INTERRUPTION ANOMALOUS BACKUP DATABASE.
我想强调的是,这个字符串在我的PC和PC测试中都可以很好地运行INSERT,DELETE,UPDATE 。
如果我更换连接字符串:
string strconn = @"Data Source=.\SQLEXPRESS; Database = db;Trusted_Connection =True";
字符串作品在我的开发机器上,但不是在测试机上。它会抛出以下错误:
Can not open database requested by the login. Login failed. Login failed for user Pina-PC \ Pina
答
亲爱的你可以用这种方式使用你的代码。
private void BK()
{
string strconn = @"Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|\db.mdf;Integrated Security=True;User Instance=True";
SqlConnection conn = new SqlConnection();
conn.ConnectionString = strconn;
try {
// First get the db name
conn.Open();
string dbname;
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
dbname = cmd.Connection.Database.ToString();
//Query per backup
string queryBK = "BACKUP DATABASE " + dbname + " TO DISK ='C:\\Program Files\\Microsoft SQLServer\\MSSQL10.SQLEXPRESS\\MSSQL\\Backup\\db.bak' WITH INIT, SKIP, CHECKSUM";
SqlCommand cmdBK = new SqlCommand(queryBK, conn);
conn.Open();
cmdBK.ExecuteNonQuery();
MessageBox.Show("backup effettuato");
}
catch (Exception ex) {
MessageBox.Show(ex.Message, "ERRORE", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally {
conn.Close();
}
}
这个例程将适用于你的情况。
测试服务器是如何设置的?运行代码的哪种类型的应用程序(Web应用程序,Windows桌面应用程序)? – Asken