xml文件导入datatable,该如何解决
xml文件导入datatable
我有个xml文件想导入dataset中 使用 xml文件如下:
?xml version="1.0"?>
<disanze>
<disanze clausetype='U01' seats='05' counts='0' amunt='50000' premium='638'/>
<disanze clausetype='U01' seats='06' counts='0' amunt='50000' premium='590'/>
<disanze clausetype='U01' seats='10' counts='0' amunt='50000' premium='590'/>
<disanze clausetype='U01' seats='05' counts='0' amunt='100000' premium='920'/>
</disanze>
C# 代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace dataset
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private DataSet getDataset()
{
///创建dataset
DataSet ds = new DataSet();
///c创建datatable,添加列
DataTable dsz = new DataTable("dsz");
dsz.Columns.Add("clausetype", typeof(char));
dsz.Columns.Add("seats",typeof(Int32));
dsz.Columns.Add("counts", typeof(Int32));
dsz.Columns.Add("amount", typeof(Int32));
dsz.Columns.Add("premium", typeof(Decimal));
try
{
///导入xml
XmlDocument doc = new XmlDocument();
string myXMLFilePathDsz = "dsz.xml";
XmlTextReader readerDsz = new XmlTextReader(myXMLFilePathDsz);
doc.Load(readerDsz);
if (doc == null)
{
return null;
}
///读取XML文件
XmlNodeList nodeList = doc.SelectNodes("/dsz/disanze");//
foreach (XmlNode node in nodeList)
{ ///读取每一行的数据
DataRow row = dsz.NewRow();
row["clausetype"] = Convert.ToChar(node.Attributes["clausetype"].Value);//通过XmlNode.Attributes属性,获取一个 XmlAttributeCollection,它包含该节点的属性。
row["seats"] = Convert.ToInt32(node.Attributes["seats"].Value);
row["counts"] = Convert.ToInt32(node.Attributes["counts"].Value);
row["amount"] = Convert.ToInt32(node.Attributes["amount"].Value);
row["premium"] = Convert.ToDecimal(node.Attributes["premium"].Value);
dsz.Rows.Add(row);
}
}
我有个xml文件想导入dataset中 使用 xml文件如下:
?xml version="1.0"?>
<disanze>
<disanze clausetype='U01' seats='05' counts='0' amunt='50000' premium='638'/>
<disanze clausetype='U01' seats='06' counts='0' amunt='50000' premium='590'/>
<disanze clausetype='U01' seats='10' counts='0' amunt='50000' premium='590'/>
<disanze clausetype='U01' seats='05' counts='0' amunt='100000' premium='920'/>
</disanze>
C# 代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace dataset
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private DataSet getDataset()
{
///创建dataset
DataSet ds = new DataSet();
///c创建datatable,添加列
DataTable dsz = new DataTable("dsz");
dsz.Columns.Add("clausetype", typeof(char));
dsz.Columns.Add("seats",typeof(Int32));
dsz.Columns.Add("counts", typeof(Int32));
dsz.Columns.Add("amount", typeof(Int32));
dsz.Columns.Add("premium", typeof(Decimal));
try
{
///导入xml
XmlDocument doc = new XmlDocument();
string myXMLFilePathDsz = "dsz.xml";
XmlTextReader readerDsz = new XmlTextReader(myXMLFilePathDsz);
doc.Load(readerDsz);
if (doc == null)
{
return null;
}
///读取XML文件
XmlNodeList nodeList = doc.SelectNodes("/dsz/disanze");//
foreach (XmlNode node in nodeList)
{ ///读取每一行的数据
DataRow row = dsz.NewRow();
row["clausetype"] = Convert.ToChar(node.Attributes["clausetype"].Value);//通过XmlNode.Attributes属性,获取一个 XmlAttributeCollection,它包含该节点的属性。
row["seats"] = Convert.ToInt32(node.Attributes["seats"].Value);
row["counts"] = Convert.ToInt32(node.Attributes["counts"].Value);
row["amount"] = Convert.ToInt32(node.Attributes["amount"].Value);
row["premium"] = Convert.ToDecimal(node.Attributes["premium"].Value);
dsz.Rows.Add(row);
}
}