最安全的方法是,用StreamReader的ReadLine来一行一行地读出,清了前后空白后,用Regex.Split来把这一行转成一个数组,这样你就能用它来填充一个DataRow.后面的就不用说了吧.
这个其实很简单.上面的方法安全,但不够快.如果分隔符是制表符的话,直接用ado当它是xls文件来读,速度快,但相对来说安全性不足,如果你的那文本是程序生成,没有经人手修改的话,好说,不然,如果文本中格式不对的话,会出错,建议用oledatareader来读,
这个其实很简单.上面的方法安全,但不够快.如果分隔符是制表符的话,直接用ado当它是xls文件来读,速度快,但相对来说安全性不足,如果你的那文本是程序生成,没有经人手修改的话,好说,不然,如果文本中格式不对的话,会出错,建议用oledatareader来读,
using System;
using System.Data;
using System.Collections;
using System.Xml;
using System.IO;
using System.Text;namespace ConsoleTest
{
/// <summary>
/// ZZConsole 的摘要说明。
/// </summary>
public class ZZConsole
{
[STAThread]
static void Main(string[] args)
{
XmlDocument xdoc= new XmlDocument();
xdoc.Load(@"d:\test.xml");
DataSet ds = CreatDataSet();
XmlNodeList xList = xdoc.SelectNodes("//Item");
foreach(XmlNode xNode in xList)
{
DataRow dr = ds.Tables["Items"].NewRow();
dr["Item"] = xNode.Attributes["Name"].Value;
ds.Tables["Items"].Rows.Add(dr);
}
foreach(DataRow dr in ds.Tables["Items"].Rows)
{
Console.WriteLine(dr["Item"].ToString());
}
Console.ReadLine();
}
public static DataSet CreatDataSet()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable("Items");
DataColumn dc = new DataColumn("Item",typeof(string));
dt.Columns.Add(dc);
ds.Tables.Add(dt);
return ds;
}
}
}
=======================================================
<?xml version="1.0" encoding="utf-8" ?>
<Root>
<Class Name="1">
<Item Name="Item11"/>
<Item Name="Item12"/>
<Item Name="Item13"/>
<Item Name="Item14"/>
</Class>
<Class Name="2">
<Item Name="Item21"/>
<Item Name="Item22"/>
<Item Name="Item23"/>
<Item Name="Item24"/>
</Class>
</Root>接下去就是绑定DataGrid。
用到的是SQL 的DTS包。
queryconn.Open();
//选择数据库表的字段名称
SqlDataAdapter SqlDAmap=new SqlDataAdapter(PropertyStr,queryconn);
DataSet DSProperty=new DataSet();
SqlDAmap.Fill(DSProperty,"property");
AllgwDataGrid.DataSource=DSProperty.Tables["property"].DefaultView;
AllgwDataGrid.DataBind();
queryconn.Close();