public  void DbRestore()
{
    SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
    SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
    try
    {
        oSQLServer.LoginSecure = false;
        oSQLServer.Connect("localhost\\sqlexpress", "sa", "sa");
        SQLDMO.QueryResults qr = oSQLServer.EnumProcesses(-1);//oSQLServer.ExecuteWithResults("select spid from master..sysprocesses where dbid=db_id('mm_gis_intmap')", 0);//查询该数据库正在连接的进程
        //if (qr.Rows > 0)
        //{
        //    for (int i = 1; i < qr.Rows; i++)
        //    {
        //        oSQLServer.ExecuteImmediate("kill " + qr.GetColumnLong(i, 1).ToString(), SQLDMO.SQLDMO_EXEC_TYPE.SQLDMOExec_Default, 0);//关才连接
        //    }
        //}
        int iColPIDNum = -1;
        int iColDbName = -1;
        for (int i = 1; i <= qr.Columns; i++)
        {
            string strName = qr.get_ColumnName(i);
            if (strName.ToUpper().Trim() == "SPID")
            {
                iColPIDNum = i;
            }
            else if (strName.ToUpper().Trim() == "DBNAME")
            {
                iColDbName = i;
            }
            if (iColPIDNum != -1 && iColDbName != -1)
                break;
        }
        for (int i = 1; i <= qr.Rows; i++)
        {
            int IPID = qr.GetColumnLong(i, iColPIDNum);
            string strDbName = qr.GetColumnString(i, iColDbName);
            if (strDbName.ToUpper().Trim() == "mm_gis_intmap".ToUpper())
            {
                oSQLServer.KillProcess(IPID);
            }
        }        oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
        oRestore.Database = "mm_gis_intmap";
        oRestore.Files = @"C:\mm_gis_intmap\mmgt_a.bak";
        oRestore.FileNumber = 1;
        oRestore.ReplaceDatabase = true;
        oRestore.SQLRestore(oSQLServer);
    }
    catch
    {
        throw;
    }
    finally
    {
        oSQLServer.DisConnect();
    }

上面是还原的代码,如果oRestor.Files赋值的是完全备份的文件,即还原可以成功,但如果是差异备份的文件,即出现以下异常:[Microsoft][ODBC SQL Server Driver][SQL Server]无法还原日志备份或差异备份,因为没有文件可用于前滚。
[Microsoft][ODBC SQL Server Driver][SQL Server]RESTORE DATABASE 正在异常终止。小弟对数据备份不怎么熟悉,请问如果我想还原差异备份,应该怎么做