C#WINFORM怎么连接数据库,并将数据库数据导出为XML文件?
比如选择combobox中的ORACLE数据库,然后点保存按钮,可以将ORACLE数据库中的数据输出为XML文件,再选择combobox中的SQLSERVER数据库,可以...
比如选择combobox中的ORACLE数据库,然后点保存按钮,可以将ORACLE数据库中的数据输出为XML文件,再选择combobox中的SQL SERVER数据库,可以将SQL SERVER数据库中的数据输出为XML文件。
我是菜鸟,请大侠们讲通俗点,有代码甚好。
小女子不胜感激。 展开
我是菜鸟,请大侠们讲通俗点,有代码甚好。
小女子不胜感激。 展开
展开全部
public void DatasetToBinary(string path, System.Data.DataSet dsResult, out string errorinfo)
{
byte[] bArrayResult = null;
MemoryStream ms = new MemoryStream();
FileStream fi = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
try
{
dsResult.RemotingFormat = SerializationFormat.Binary;
IFormatter bf = new BinaryFormatter();
bf.Serialize(ms, dsResult);
bArrayResult = ms.ToArray();
fi.Write(bArrayResult, 0, bArrayResult.Length);
errorinfo = "成功";
}
catch (Exception ex)
{
errorinfo = "因" + ex.Message + "不能转换";
}
finally
{
ms.Close();
fi.Close();
}
}
//把二进制流转化到其中的value节点中
XmlNode updateNode = root.SelectSingleNode("filelist");
string path = updateNode.Attributes["sourcepath"].Value;
int count = int.Parse(updateNode.Attributes["count"].Value);
//将xml中的value用实际内容替换
for (int i = 0; i < count; i++)
{
XmlNode itemNode = updateNode.ChildNodes[i];
string fileName = path + itemNode.Attributes["name"].Value;
FileStream fs = File.OpenRead(Server.MapPath(fileName));
itemNode.Attributes["size"].Value = fs.Length.ToString();
BinaryReader br = new BinaryReader(fs);
//这里是文件的实际内容,使用了Base64String编码
itemNode.SelectSingleNode("value").InnerText = Convert.ToBase64String(br.ReadBytes((int)fs.Length), 0, (int)fs.Length);
br.Close();
fs.Close();
}
lz整合一下嘛
我想的是一个xml文件里分为n个节点,一个节点的value就是一个表
把表的内容封装到dataset里面,把它转化为二进制流,然后存储在dataset里面。
当然,你也可以在网上找一下数据库备份的代码,把数据库备份的内容直接转化为二进制流(就是我贴的第一部分代码)
xml的格式
<?xml version="1.0" encoding="utf-8" ?>
<product>
<version>1.0.0.1</version>
<description>转换数据库</description>
<filelist count="1" sourcepath="./update/">
<item name="table1" size="1318912">
<value />
</item>
<item name="table2" size="1318912">
<value />
</item>
</filelist>
</product>
楼主还有不懂的再问嘛,我要下班了,所以没把代码整合。这些代码是我做的两个程序里面的。来不及整合,呵呵,不好意思。
{
byte[] bArrayResult = null;
MemoryStream ms = new MemoryStream();
FileStream fi = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write);
try
{
dsResult.RemotingFormat = SerializationFormat.Binary;
IFormatter bf = new BinaryFormatter();
bf.Serialize(ms, dsResult);
bArrayResult = ms.ToArray();
fi.Write(bArrayResult, 0, bArrayResult.Length);
errorinfo = "成功";
}
catch (Exception ex)
{
errorinfo = "因" + ex.Message + "不能转换";
}
finally
{
ms.Close();
fi.Close();
}
}
//把二进制流转化到其中的value节点中
XmlNode updateNode = root.SelectSingleNode("filelist");
string path = updateNode.Attributes["sourcepath"].Value;
int count = int.Parse(updateNode.Attributes["count"].Value);
//将xml中的value用实际内容替换
for (int i = 0; i < count; i++)
{
XmlNode itemNode = updateNode.ChildNodes[i];
string fileName = path + itemNode.Attributes["name"].Value;
FileStream fs = File.OpenRead(Server.MapPath(fileName));
itemNode.Attributes["size"].Value = fs.Length.ToString();
BinaryReader br = new BinaryReader(fs);
//这里是文件的实际内容,使用了Base64String编码
itemNode.SelectSingleNode("value").InnerText = Convert.ToBase64String(br.ReadBytes((int)fs.Length), 0, (int)fs.Length);
br.Close();
fs.Close();
}
lz整合一下嘛
我想的是一个xml文件里分为n个节点,一个节点的value就是一个表
把表的内容封装到dataset里面,把它转化为二进制流,然后存储在dataset里面。
当然,你也可以在网上找一下数据库备份的代码,把数据库备份的内容直接转化为二进制流(就是我贴的第一部分代码)
xml的格式
<?xml version="1.0" encoding="utf-8" ?>
<product>
<version>1.0.0.1</version>
<description>转换数据库</description>
<filelist count="1" sourcepath="./update/">
<item name="table1" size="1318912">
<value />
</item>
<item name="table2" size="1318912">
<value />
</item>
</filelist>
</product>
楼主还有不懂的再问嘛,我要下班了,所以没把代码整合。这些代码是我做的两个程序里面的。来不及整合,呵呵,不好意思。
展开全部
1楼的搞得这么麻烦干嘛呀
第一步将数据库的数据保存为DataSet
第二步写XML,DataSet有个方法WriteXml ("文件名.xml");
第一步将数据库的数据保存为DataSet
第二步写XML,DataSet有个方法WriteXml ("文件名.xml");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嗯,您需要添加显示数据的控件,
还可以写一个类来访问数据,
在按钮里面写相关查询数据的代码,并把查询到的数据添加到显示数据的控件里就好了,
还可以写一个类来访问数据,
在按钮里面写相关查询数据的代码,并把查询到的数据添加到显示数据的控件里就好了,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |