首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

执行命令定义时疏失

2013-03-10 
执行命令定义时出错在做数据库恢复时,抛出异常。。。如图:代码如下: public void DbRestore(string fileName)

执行命令定义时出错
在做数据库恢复时,抛出异常。。。
如图:
执行命令定义时疏失
代码如下:

 public void DbRestore(string fileName)
    {
        SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
        SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
        try
        {
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "Data Source=.;Initial Catalog=master;User ID=sa;pwd =123456;pooling=false";
            conn.Open();
            //查找当前名为PUBS的数据库使用进程
            string sql = "select spid from sysprocesses,sysdatabases where sysprocesses.dbid=sysdatabases.dbid and sysdatabases.Name = 'VisionMaster'";
            SqlCommand cmd1 = new SqlCommand(sql, conn);
            SqlDataReader dr;
            ArrayList list = new ArrayList();
            try
            {
                dr = cmd1.ExecuteReader();
                while (dr.Read())
                {
                    list.Add(dr.GetInt16(0));
                }
                dr.Close();
            }
            catch (SqlException)
            {
                conn.Close();
            }
            for (int i = 0; i < list.Count; i++)
            {
                cmd1 = new SqlCommand(string.Format("KILL {0}", list[i].ToString()), conn);
                cmd1.ExecuteNonQuery();              
            }
            oSQLServer.LoginSecure = false;
            oSQLServer.Connect("localhost", "sa", "123456");


            oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
            oRestore.Database = "VisionMaster";
            string filePath = Server.MapPath("~\\Data\" + fileName);
            oRestore.Files = filePath;
            oRestore.FileNumber = 1;
            oRestore.ReplaceDatabase = true;
            oRestore.SQLRestore(oSQLServer);          
        }
        catch(Exception ex)
        {
            throw ex;
        }
        finally
        {
            oSQLServer.DisConnect();
            Response.Write("<script>window.close();</script>");
            ui.AlertRedirect(this, "恢复成功,请重新数据库连接服务", "../Login.aspx");
        }
    }


[解决办法]
那你就找oSQLServer 看这个对象对不对。
[解决办法]
SQLDMO 这什么玩意? 自定义的类? F11进去慢慢调吧
[解决办法]
我的意思你先建立一个Windows或者Console界面的程序测试一下代码。

热点排行