将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; ;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值