提取数据表保存为XML文件

  //连接数据库
SqlConnection con = new SqlConnection("server=****;database=****;uid=sa;pwd=********"); /// <summary>
/// 提取数据表保存为XML文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
try
{
//打开数据库
con.Open(); //当数据库为打开时
if (con.State == ConnectionState.Open)
{ //声明一个DataTable 存储数据
DataTable dt = new DataTable();
//SQL语句
string str = "select * from CurrentStock"; //声明一个sql数据适配器执行sql语句
SqlDataAdapter sad = new SqlDataAdapter(str, con); //将SQLql数据适配器的内容填充到DATATABEL
sad.Fill(dt); //当DataTable的内容大于0 时,向下执行
if (dt.Rows.Count > )
{ //创建一个DOM对象
XDocument xDoc = new XDocument();
//创建XML文档的声明语句
XDeclaration xDec = new XDeclaration("1.0", "UTF-8", "no");
//将声明语句给XML文档xDoc
xDoc.Declaration=xDec; //创建一个根节点
XElement xrootElement = new XElement("CurrentStock");
//将根节点添加到XML文档xDoc中
xDoc.Add(xrootElement); //遍历DataTable的每一行
for (int i = ; i < dt.Rows.Count; i++)
{
//创建一个子节点,区分每一行的数据
XElement xElementRow = new XElement("Row");
//给子节点Row添加一属性,这里是行号,识别一共有多少行
xElementRow.SetAttributeValue("Autoid", (i + ).ToString()); //遍历每一列,主要获取列名
for (int j = ; j <dt.Columns.Count; j++)
{
//向子节点Row中添加子元素, 元素的名称是dt中的列表 ,值是dt中每一行每一列的值
xElementRow.SetElementValue(dt.Columns[j].ColumnName, dt.Rows[i][j].ToString().Trim()); } //将子点节Row添加到根节点下
xrootElement.Add(xElementRow); } //保存XML文件
xDoc.Save("TableNameA"); //提示成功
MessageBox.Show("OK"); } else
{ MessageBox.Show("表中没有数据!"); } }
else
{
MessageBox.Show("数据库连接出错,请检查!"); } }
catch
{ throw; } con.Close();
}
上一篇:.net运行时和核心类库源码(部分源码)微软官方下载


下一篇:poj 1066 线段相交