在ASP.NET程序里用到一个ACCESS的.MDB数据库。经常需要从网站上下载备份这个数据库。
现在是用FTP的方式下载备份,操作起来有点麻烦。
如果直接以http://www.yuneach.com/test.mdb这样的形式去直接下载,则提示:
This type of page is not served. 请问有没有什么办法,或自己编写一个asp.net页面,实现点一下,就把这个ACCESS数据库下载到本机?

解决方案 »

  1.   

       #region 压缩Access数据库
        /// <summary>
        /// 压缩Access数据库
        /// </summary>
        /// <param name="ourl">原数据库路径</param>
        /// <param name="burl">临时压缩数据库路径</param>
        /// <returns>返回压缩结果,0表备份成功,否则返回异常信息。</returns>
        public static string CompactAccess(string ourl, string burl)
        {
            string oconn, bconn;
            oconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ourl;
            bconn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + burl;
            try
            {
                JetEngineClass DatabaseEngin = new JetEngineClass();
                DatabaseEngin.CompactDatabase(oconn, bconn);
                File.Copy(burl, ourl, true);//将压缩后的数据库覆盖原数据库
                File.Delete(burl);//删除压缩后的数据库
                return "0";
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }
        #endregion    #region 备份/还原Access数据库
        /// <summary>
        /// 备份Access数据库
        /// </summary>
        /// <param name="ourl">原数据库路径</param>
        /// <param name="burl">备份后的数据库路径</param>
        /// <returns>返回备份结果,0表备份成功,否则返回异常信息。</returns>
        public static string BeifenAccess(string ourl, string burl)
        {
            try
            {
                File.Copy(ourl, burl, true);
                return "0";
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }
        #endregion//例子string ourl = Server.MapPath("App_Data/DATABASE.MDB");//原数据库路径
    string burl = Server.MapPath("App_Data/DATABASE_B.MDB");//压缩/备份数据库路径
    Response.Write(AccessDataBases.CompactAccess(ourl, burl));
    Response.Write(AccessDataBases.BeifenAccess(ourl, burl));
    Response.Write(AccessDataBases.BeifenAccess(burl, o url));
      

  2.   

    把文件重命名。DATABAK.RAR  你就能下了!下来以后再改成.MDB就可以了!
      

  3.   

    点击下载时 可以先把数据库在服务端用程序拷贝到其他目录 用Response.redirect 到该地址应该可以下载
      

  4.   

    写个页面,按钮事件里写Response.AddHeader("Content-Disposition", "attachment; filename=test.mdb")Response.WriteFile("test.mdb");注意路径就可以了