我这个是实现数据库还原的代码,可是一执行就提示“[DBNETLIB][ConnectionOpen (Connect()).]SQL Server不存在或拒绝访问”。这到底是什么地方出错了呢?该怎么解决?void CDlgRightRestoreDb::OnBtnOk() 
{
UpdateData(); if (m_strPath.IsEmpty())
{
MessageBox("路径不能为空!", "提示", MB_OK | MB_ICONEXCLAMATION);
} if (IDCANCEL == MessageBox("确定要执行还原操作?", "提示", MB_ICONINFORMATION | MB_OKCANCEL))
{
return;
} CADOConn ado;
_bstr_t bstrSQL;
CString strSQL; m_btnOK.SetWindowText("还原中");
m_btnOK.EnableWindow(FALSE);

strSQL.Format("USE master RESTORE DATABASE Express FROM DISK = '%s'",
m_strPath);
bstrSQL = strSQL; if (ado.ExecuteTrans(bstrSQL))
{
m_btnOK.SetWindowText("确定");
m_btnOK.EnableWindow(TRUE); MessageBox("还原成功!", "提示", MB_OK | MB_ICONEXCLAMATION);
}
else
{
m_btnOK.SetWindowText("确定");
m_btnOK.EnableWindow(TRUE);

MessageBox("还原失败!", "提示", MB_OK | MB_ICONEXCLAMATION);
}
}

解决方案 »

  1.   

    ado 是否先正确的连接connect到sql server
      

  2.   

    要正确连接SQL Server,另外如果是远程访问的话,运行程序的计算机的还要有访问SQL Server服务器的权限,最好先在"网上邻居"中先打开一下SQLServer的服务器
      

  3.   

    是不是MASTER数据库不能进行还原,MASTER为SQL的系统用数据库名。你在SQL中新建一个数据库名,再进行数据库还原操作还能不能把新建的还原掉,记住还原之前先对刚建成的数据库进行备份一次,再来还原。
      

  4.   

    我不是对Master进行还原啊。我是对Express进行还原的。