我正在尝试使用以下代码恢复数据库:
OpenFileDialog open1 = new OpenFileDialog();
open1.FilterIndex = 1;
open1.Title = "restory backup databse";
open1.Filter = "Backup File (*.Bak)|*.Bak";
if (open1.ShowDialog() == DialogResult.OK)
{
if (back_restore(@"Alter DataBase [Attendance_DB] set single_User with Rollback Immediate use master Restore Database [Attendance_DB] From Disk ='" + open1.FileName + "' with Replace "))
{
MessageBox.Show("successfully restored");
}
else
{
MessageBox.Show("error");
}
}
和
public static bool back_restore (string Query)
{
SqlConnection Con = new SqlConnection();
Con.ConnectionString = @"Data Source=.;Initial Catalog=Attendance_DB;Integrated Security=True";
Con.FireInfoMessageEventOnUserErrors = true;
Con.Open();
SqlCommand cmd = new SqlCommand(Query, Con);
Con.FireInfoMessageEventOnUserErrors = false;
try
{
cmd.ExecuteNonQuery();
return true;
}
catch(SqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
finally
{
Con.Close();
}
}
但是我收到了这个错误:
System.Data.dll中出现未处理的“System.Data.SqlClient.SqlException”类型异常
附加信息:无法打开登录请求的数据库“Attendance_DB”。登录失败。
请帮我解决这个问题
答案 0 :(得分:0)
缺少一些信息来准确回答这个问题,
首先要确保
1- "Attendance_DB"
实际存在。
2-如果它确实存在且您无法运行命令,请以管理员身份运行您的实用程序。或者,如果您在某些IDE中运行代码,请以管理员身份运行IDE。
3-确保数据库服务器接受Windows Authentication
,因为您在连接字符串中使用Integrated Security=True"
。
HTH