将access数据库转换成XML文件

//按钮的事件

protected void Button1_Click(object sender, EventArgs e)
    {
      
        using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|/MmcDWZ.mdb"))
        {
            conn.Open();
            DataTable tablesName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
            //dataGridView1.DataSource = tablesName.DefaultView;
            conn.Close();
            try
            {
                string Mypath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "myxmldata";
                for (int num = 0; num < tablesName.Rows.Count; num++)
                {
                    DataTable dt = new DataTable();
                    string AccessTableName = tablesName.Rows[num]["TABLE_NAME"].ToString().Trim();
                    //MessageBox.Show(Path.DirectorySeparatorChar + "xmldata" + Path.DirectorySeparatorChar);
                    OleDbCommand cmd = new OleDbCommand("select * from [" + AccessTableName + "]", conn);
                    OleDbDataAdapter dap = new OleDbDataAdapter(cmd);                 
                    dap.Fill(dt);
                    WriteTableToXml(AccessTableName, Mypath, dt, AccessTableName);
                    cmd.Dispose();
                }
                Response.Write("<script language='javascript'>alert('XML数据导出成功');</script>");
            }
            catch (Exception ex)
            {
                conn.Close();
                throw new Exception(ex.Message);
            }
        }
    }
     /// <summary>
        /// 将表中数据保存到文件夹folderName下的xml文件xmlName;
        /// </summary>
        /// <param name="xmlName">要保存的xml文件名称</param>
        /// <param name="folderName">文件所在路径,但是并不包括文件名称(Application.StartupPath + Path.DirectorySeparatorChar + "FolderName" + Path.DirectorySeparatorChar;)</param>
        /// <param name="dataTable">要保存的数据表</param>
        /// <returns>保存成功返回true,否则是false</returns>
        public static bool WriteTableToXml(string xmlFileName, string serverFilePath, DataTable dataTable, string tableName)
        {
            if (dataTable.TableName != tableName)
            {
                dataTable.TableName = tableName;
            }
            if (!serverFilePath.EndsWith("//"))
                serverFilePath += "//";
            if (!xmlFileName.EndsWith(".xml"))
                xmlFileName += ".xml";
            serverFilePath += xmlFileName;
            try
            {
                string directoryName = Path.GetDirectoryName(serverFilePath);//获取文件所在目录
                bool isExists=Directory.Exists(directoryName);//检查该目录是否存在
                if (!isExists)//不存在该文件目录,则创建
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(serverFilePath));
                }
                dataTable.WriteXml(serverFilePath, XmlWriteMode.WriteSchema);
                return true;
            }
            catch
            {
                return false; ;
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值