如何读取一个文件夹下多个CSV文件到DATATABLE 各位高手 现有一个文件夹,里面有好多个CSV文件,如何用代码实现 读取到winform 中的DataTable中 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果能保证CSV文件格式正确的话用下面的方法试试DataTable dtData = new DataTable(); dtData.Columns.Add("Column1"); dtData.Columns.Add("Column2"); dtData.Columns.Add("Column3"); String[] FileNameList = Directory.GetFiles("文件夹路径"); foreach (String filePath in FileNameList) { StreamReader sr = new StreamReader(filePath); while (true) { String strData = sr.ReadLine(); if (!String.IsNullOrEmpty(strData)) { String[] strValue=strData.Split(','); DataRow dr = dtData.NewRow(); dr["Column1"] = strValue[0]; dr["Column2"] = strValue[1]; dr["Column3"] = strValue[2]; dtData.Rows.Add(dr); } } } 刚才写的仓促,漏了return; DataTable dtData = new DataTable(); dtData.Columns.Add("Column1"); dtData.Columns.Add("Column2"); dtData.Columns.Add("Column3"); String[] FileNameList = Directory.GetFiles("文件夹路径"); foreach (String filePath in FileNameList) { StreamReader sr = new StreamReader(filePath); while (true) { String strData = sr.ReadLine(); if (!String.IsNullOrEmpty(strData)) { String[] strValue = strData.Split(','); DataRow dr = dtData.NewRow(); dr["Column1"] = strValue[0]; dr["Column2"] = strValue[1]; dr["Column3"] = strValue[2]; dtData.Rows.Add(dr); } else { return;//刚才漏了~ } } } 此方法如果碰到CSV中一行空的,就Return了,后面的数据就无法读出了,麻烦解释下,谢谢 有空行的话稍微改一句话就行了if (!String.IsNullOrEmpty(strData))变成if (strData != null)你再试试~ 有空行的话改if判断if (!String.IsNullOrEmpty(strData))改成 if (strData != null) 就可以了 根本不能用return 应该是break才对吧 晕!!!!! 谢谢,分给你,如有空 帮我看看另外的问题http://topic.csdn.net/u/20110509/14/ef813375-2a6a-49a4-828d-0973e6c30741.html?seed=1064715689&r=73214823#r_73214823 6楼说的对,我写错了,是break; c# 程序传记录集问题,高手点进。 如何动态生成数据类型 C####线程、线程池与委托的异同 请指点 Access取date()的月和日问题 ADO security warning 关于冒泡排序优化问题。 请教使用PCSC SCardTransmit向卡片发送指令失败的问题 编码转换问题 【求助】操作XML文件,在asp.net下没有问题,移植到Winfrom下没有任何反应 请各位告诉我一个答案 WinCE程序调用WebService报错:客户端发现响应内容的类型为“text/html”,但应该是“text/xml”。 【C#算法、答题有奖,路过的进来看一看了,】
用下面的方法试试DataTable dtData = new DataTable();
dtData.Columns.Add("Column1");
dtData.Columns.Add("Column2");
dtData.Columns.Add("Column3");
String[] FileNameList = Directory.GetFiles("文件夹路径");
foreach (String filePath in FileNameList)
{
StreamReader sr = new StreamReader(filePath);
while (true)
{
String strData = sr.ReadLine();
if (!String.IsNullOrEmpty(strData))
{
String[] strValue=strData.Split(',');
DataRow dr = dtData.NewRow();
dr["Column1"] = strValue[0];
dr["Column2"] = strValue[1];
dr["Column3"] = strValue[2];
dtData.Rows.Add(dr);
}
} }
dtData.Columns.Add("Column1");
dtData.Columns.Add("Column2");
dtData.Columns.Add("Column3");
String[] FileNameList = Directory.GetFiles("文件夹路径");
foreach (String filePath in FileNameList)
{
StreamReader sr = new StreamReader(filePath);
while (true)
{
String strData = sr.ReadLine();
if (!String.IsNullOrEmpty(strData))
{
String[] strValue = strData.Split(',');
DataRow dr = dtData.NewRow();
dr["Column1"] = strValue[0];
dr["Column2"] = strValue[1];
dr["Column3"] = strValue[2];
dtData.Rows.Add(dr);
}
else
{
return;//刚才漏了~
}
}
}
变成
if (strData != null)
你再试试~
if (!String.IsNullOrEmpty(strData))
改成 if (strData != null) 就可以了
谢谢,分给你,如有空 帮我看看另外的问题
http://topic.csdn.net/u/20110509/14/ef813375-2a6a-49a4-828d-0973e6c30741.html?seed=1064715689&r=73214823#r_73214823