C# 如何使用asp.net和C恢复SQL Server备份?
如何使用C恢复SQL Server备份C# 如何使用asp.net和C恢复SQL Server备份?,c#,asp.net,sql-server,C#,Asp.net,Sql Server,如何使用C恢复SQL Server备份 try { string test = "D:\\backupdb\\05012017_130700.Bak"; sqlcmd = new SqlCommand("Restore database EmpolyeeTable from disk='D:\\backupdb\\05012017_130700.Bak'", con); sqlcmd.ExecuteNonQuery(); Response.Write("re
try
{
string test = "D:\\backupdb\\05012017_130700.Bak";
sqlcmd = new SqlCommand("Restore database EmpolyeeTable from disk='D:\\backupdb\\05012017_130700.Bak'", con);
sqlcmd.ExecuteNonQuery();
Response.Write("restore database successfully");
}
catch (Exception ex)
{
Response.Write("Error During backup database!");
}
你的要求很奇怪。我从未听说过有人从网页恢复数据库备份,正如@Alex K.所说的,使用您的web应用程序的用户拥有所需的previleges是非常罕见的 无论如何,假设上面提到的一切都正常,恢复备份的代码如下: 使用以下命令:
using System.Data;
using System.Data.SqlClient;
代码:
这将特别适用于您发布的问题。请确保在连接字符串上设置数据库服务器的所有参数,从对问题的评论中可以看出您存在通信问题。你必须在做任何事情之前解决这些问题。一些提示:
确保以正确的方式设置连接字符串上的所有参数
尝试使用其他工具(如ODBC)进行连接,以便可以测试所有参数
查看SQL网络设置以查看是否启用了TCP/IP
具有在sql?Response.Writeex.ToString上执行命令的用户权限;我会告诉你发生了什么。更多的信息会有用的。你会犯什么样的错误?你试过什么?此外,代码块不完整。在第一行之前会发生什么?捕获异常ex{Response.WriteError During backup database!;}为什么我会看到这么多这样愚蠢的代码?您可以抑制真正的错误,并将其替换为无用的任意字符串。这样做有什么可能的目的?检查异常告诉您的内容并正确报告。@Alex K有一个很好的观点……从哪里获取文件名?哪里有不正确的语法?。用正确的数据库名和备份文件替换查询。我必须返回文件位置。我已经给出了。再次显示错误是编译错误吗?。这是个例外吗?。Post DETAILES.protected void按钮2\u Clickobject sender,事件参数e{con.ConnectionString=数据源=SYSTEM-6-PC;初始目录=Master;集成安全性=True;重试{con.Open;SqlCommand command=con.CreateCommand;command.CommandText=从磁盘还原数据库EmpolyeeTable='D:\backupdb.BAK'和REPLACE GO;command.ExecuteNonQuery;}捕获异常{throw;}finally{con.Dispose;con.Close;}
private void TakeBackup()
{
var conn = new SqlConnection("Data Source=" + Server + ";Initial Catalog=" + Database + ";User Id=" + Username + ";Password=" + Password + ";");
try
{
conn.Open();
SqlCommand command = conn.CreateCommand();
command.CommandText = "RESTORE DATABASE AdventureWorks FROM DISK = 'C:\AdventureWorks.BAK' WITH REPLACE GO";
command.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
conn.Dispose();
conn.Close();
}
}