C#里用SQLDMO备份数据时出错,请帮忙!

skylin8052 2008-05-13 11:11:46
private void btnBackUp_Click(object sender, EventArgs e)
{
//◆数据备份:
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect("localhost", "sa", "");
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
oBackup.Database = "Northwind";
oBackup.Files = @"d:\Northwind.bak";
//oBackup.BackupSetName = "Northwind";
//oBackup.BackupSetDescription = "数据库备份";
oBackup.Initialize = true;
oBackup.SQLBackup(oSQLServer);
MessageBox.Show("备份成功!");


}
catch
{
throw;
}
finally
{
oSQLServer.DisConnect();
}
}
这个是具体的备份代码,但是出现这样的错误提示:
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server 不存在或访问被拒绝
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
排错提示:
检查异常的ERRORCODE属性以确定COM对象返回的HRESULT。

请各位高手帮忙解决以下,谢谢。100分送上!
...全文
84 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
松山仪龙 2009-07-09
  • 打赏
  • 举报
回复
怎么解决的呢???
skylin8052 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 Guyschaos 的回复:]
把localhost换成.看看行不行?
[/Quote]

可以了。谢谢你。结帖子咯。
贫僧又回来了 2008-05-13
  • 打赏
  • 举报
回复
public void DbBackup(string databasename, string filedir, string servername)
{
SQLDMO.Backup beifen = new SQLDMO.BackupClass();
SQLDMO.SQLServer servers = new SQLDMO.SQLServerClass();
try
{
servers.LoginSecure = false;
servers.Connect(servername, "sa", "");
beifen.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
beifen.Database = databasename;
beifen.Files = filedir;
beifen.BackupSetName = filedir;
beifen.BackupSetDescription = "数据库备份";
beifen.Initialize = true;
beifen.SQLBackup(servers);
}
catch (Exception ex)
{
throw ex;
}
finally
{
servers.DisConnect();
}
}
我是写方法,传值进去的,没出现过错误啊!是不是你数据库的验证方式不对啊?是混合验证还是什么的?
贫僧又回来了 2008-05-13
  • 打赏
  • 举报
回复
把localhost换成.看看行不行?
51Crack 2008-05-13
  • 打赏
  • 举报
回复

SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServer();
try
{
oSQLServer.LoginSecure = false;
oSQLServer.Connect("localhost", "sa", "");
SQLDMO.Backup bkps=new SQLDMO.Backup();
bkps.Database ="Northwind";
bkps.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
bkps.Files = @"d:\Northwind.bak";
bkps.Initialize = true;
bkps.SQLBackup(oSQLServer);
bkps = null;
oSQLServer = null;
}
catch (Exception ex){MessageBox.Show(ex.ToString(),"提示");}
skylin8052 2008-05-13
  • 打赏
  • 举报
回复
谢谢LS的,我之前都已经添加SQLDMO引用了。
ericzhangbo1982111 2008-05-13
  • 打赏
  • 举报
回复
..........根本就不用注册...
直接在引用里添加com选项里就能找到..
给你一篇文章,以前做这个的时候看到的
http://www.csharphelp.com/archives2/archive342.html
skylin8052 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 skylin8052 的回复:]
引用 2 楼 HeddaZ 的回复:
SQLDMO所依赖的COM实体是否在你的机器上注册过?


好象没有,试问如何注册?谢谢。
[/Quote]

regsvr32 "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll"

我已经注册了。但是还是不行,提示同样的错误。
请高手再次指点。。
skylin8052 2008-05-13
  • 打赏
  • 举报
回复
还有,如果是需要注册,那么我的软件如果放到别的机器上,而这个机器也没有注册,那又应该怎么操作?又什么办法能让别的机器也自动注册?
skylin8052 2008-05-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 HeddaZ 的回复:]
SQLDMO所依赖的COM实体是否在你的机器上注册过?
[/Quote]

好象没有,试问如何注册?谢谢。
大飞飞虫 2008-05-13
  • 打赏
  • 举报
回复
SQLDMO所依赖的COM实体是否在你的机器上注册过?
LAOC 2008-05-13
  • 打赏
  • 举报
回复
这是你引用了一个外部的DLL造成的

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧