在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列读出来呢?希望把【~】作为分隔符处理。当把【~】替换成【,】时是可以的
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列读出来呢?希望把【~】作为分隔符处理。当把【~】替换成【,】时是可以的
解决方案 »
- 向原来好好的C#程序中加一段异步套接字服务器端代码,结果程序老自己退出,该怎么办?
- rdlc 报表中指定多数据源时,第二个数据源只会显示首行
- 如何将Winfom程序打包成安装文件?
- C#局域网问题
- vs2005开发的页面装在win2003上竟然提示的是.net1.1错误
- 如何始终读取数据库,如果哪个字段内容有变化,则给出MSN样的提示?
- 求教C#实现FTP上传的解决方法(最后100分)
- 刚刚学习delegate的一个简单问题
- 谁帮我修改一个类 1G 空间送你 至少用2年!!
- 在MDI子窗体中,按上下键会在各个MDI子窗体来回切换,如何屏蔽这种不良行为?
- 这个Blend的帮助文档有地方下么?
- 如果一个委托中委托了多个函数,执行该委托时如何确定执行其中的一个?
string[] tempArray = tempstr.Split(new string[] { "~" }, StringSplitOptions.RemoveEmptyEntries);
foreach (string x in tempArray)
{
MessageBox.Show(x);
}
这样不行吗?