将csv导入dataset遇到问题

chazikai24 2010-07-26 01:45:26
我现在有个表
ID name phone
1 A 123
2 B 234
3 C 345;456
使用下面代码
string csvPath = textBox1.Text;
string fileFullName = Path.GetFileName(csvPath);
string folderPath = csvPath.Substring(0, csvPath.LastIndexOf('\\') + 1);
string connStr = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='text;HDR=Yes;IMEX=1'", folderPath);
string sql = string.Format(@"SELECT * FROM [{0}]", fileFullName);
OleDbDataAdapter da = new OleDbDataAdapter(sql, connStr);
da.Fill(ds);

可以将前面两个数据导入到dataset,但是第三个导入之后ID=3,name=C,phone却不能导入,显示为空。
高手帮我看看哪里有问题?
我测试的时候phone字段只能是数字型才能导入,别的都无法导入
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chazikai24 2010-07-27
  • 打赏
  • 举报
回复
研究发现,IMEX=1无法将全部数据当成文本型来读取。而是根据csv前8条的字段类型最多的来设置的。
解决方法是手动调整csv数据位置,尽量将前8条调整为文本型的数据。

结贴!
chazikai24 2010-07-27
  • 打赏
  • 举报
回复
我建的datatable的phone是string型的。所以应该是在读取csv数据就出错了
chazikai24 2010-07-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lovesoftandhxy 的回复:]
phone的类型是是什么??

如果是数字型的话,是不可以的哇
id name phone
3 C 345;456

这个phone已经不是数字型了。
[/Quote]
我是从oracle数据库导出来的文件,phone不是数字型。我把csv读取到dataset中,phone一栏只能读数字型,不知道为什么。我预先在dataset中新增一张datatable,把csv到如到这个datatable中,也只能导进数字型的,所以我怀疑在读取的时候就出现问题了。求解!
loveSoftandhxy 2010-07-27
  • 打赏
  • 举报
回复
phone的类型是是什么??

如果是数字型的话,是不可以的哇
id name phone
3 C 345;456

这个phone已经不是数字型了。
chazikai24 2010-07-27
  • 打赏
  • 举报
回复
请高手帮忙啊

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧