在C#中用oleDB读取文本文件,如下:            string sql = "select * from [data.txt]";
            string connStr = ConfigurationManager.ConnectionStrings["MyOle"].ConnectionString;            OleDbConnection conn = new OleDbConnection(connStr);
            OleDbCommand cmd = new OleDbCommand(sql, conn);
            OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);            conn.Open();
            DataSet ds =new DataSet();
            adapter.Fill(ds);
            DataTable dt = ds.Tables[0];
            conn.Close();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                string s = dt.Rows[i][0].ToString();
                MessageBox.Show(s);
            }连接字符串:Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Text;HDR=Yes;FMT=Delimited;IMEX=1';Data Source=db\data.txt内容:
凭证编号~凭证日期~记账日期~凭证期间~凭证类型
1~20090630~20090630~1131001~汇总
2~20090630~20090629~1131002~汇票
在运行中发现,s始终等于“1~20090630~20090630~1131001~汇总”,即文本数据作为一列读出来了。
请问能不能作为5列读出来呢?希望把【~】作为分隔符处理。当把【~】替换成【,】时是可以的

解决方案 »

  1.   

    string tempstr = "1~20090630~20090630~1131001~汇总";
                string[] tempArray = tempstr.Split(new string[] { "~" }, StringSplitOptions.RemoveEmptyEntries);
                foreach (string x in tempArray)
                {
                    MessageBox.Show(x);
                }
      

  2.   

    string[] array = str.Split(new string[] { "~" }, StringSplitOptions.RemoveEmptyEntries); 
      

  3.   

    Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Text;HDR=Yes;FMT=Delimited(~);IMEX=1';Data Source=db\ 
    这样不行吗?
      

  4.   

    to->wackyboy,不行啊,这样写会出错。暂时先取出数据再处理字符吧