OleDbDataAdapter - 读取制表符分隔文件

时间:2015-09-02 16:00:34

标签: vb.net .net-4.0 oledb

(我不需要OleDbDataAdapter的替代品。)

下面的代码查找并读取文件OK但DGV有四列(如预期的那样),但所有数据行在第一列中只有文本。

SELECT id, 
(SELECT text FROM dic WHERE dic.id = main.valueA), -- will return NULL of not found, use IFNULL if you want another value to be returned -- 
valueB, 
valueC
FROM main

我认为扩展属性是唯一的要求。我尝试添加一个Schema.ini无济于事 - 我不认为它甚至被读取,因为列标题永远不会与架构匹配。

最成功的传递中的标题行使用逗号作为分隔符 - 这导致四列具有正确的名称,但选项卡分隔数据全部在Col1中。如果我在标题行中使用制表符,我会得到一些系统分配列(3),这些列对应于带有两个逗号的数据行。

我做错了什么?

以下是标签字符被 Dim sDir As String = "c:\temp\" Dim sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDir & ";Extended Properties='text;HDR=Yes;FMT=TabDelimited';" Dim dt As New DataTable() Using adapt As New OleDbDataAdapter(String.Format("SELECT TOP 100 * FROM robo.txt"), sConn) adapt.Fill(dt) End Using DataGridView1.DataSource = dt 替换的前几行。我注意到我在数据中有一个额外的列。下面标题行的修复程序无法解决问题 - 所有数据都被转储到第一个字段中。

在标题中使用标签分隔符而不是逗号,会导致所有标题文本和数据被转储到第一个字段中。

<tab>

1 个答案:

答案 0 :(得分:0)

尝试使用OLEDB将return this.get('placemark').then(function(placemark) { return placemark.get('geometry'); }); 日志加载到RoboCopy时了解了几件事。

  • 日志文件需要有.txt或.csv(或?)扩展名.log失败。
  • 标签分隔的robocopy日志似乎需要Schema.ini,无论如何都适用于列定义。
  • Datagridview需要很长时间才能显示30MB的数据,所以我用过 过滤
  • 我从网上借了代码来创建一个Schema.ini,如下所示

(SO bug:代码将不再从Visual Studio中粘贴。代码工具翻转到Java的其他网页。)

DataTable