最安全的方法是,用StreamReader的ReadLine来一行一行地读出,清了前后空白后,用Regex.Split来把这一行转成一个数组,这样你就能用它来填充一个DataRow.后面的就不用说了吧.
这个其实很简单.上面的方法安全,但不够快.如果分隔符是制表符的话,直接用ado当它是xls文件来读,速度快,但相对来说安全性不足,如果你的那文本是程序生成,没有经人手修改的话,好说,不然,如果文本中格式不对的话,会出错,建议用oledatareader来读,

解决方案 »

  1.   

    使用Xml
    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。
      

  2.   

    既然是文本的样式,我也同意用XML格式的,
      

  3.   

    可以采用在数据库建立临时表的方法。再使用OSQL从文件导入数据,然后再提取,就可以了。最后再导出。比较麻烦。
    用到的是SQL 的DTS包。
      

  4.   

    那如何将内存中生成的dataset,通过select之类的查询,将查询结果存入一个SQL数据库,
      

  5.   

    给你一段代码:

    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();