0

任何人都可以帮助我连接到 Microsoft 平面文件、扩展名 txt 的字符串吗?我只是想阅读一个用 | 分隔的 txt 文档 .

获取数据并尽可能通过DataAdapter将其加载到DataTable中,文件的第一行应该是DataTable上的列名,最后DataType在DataTable上并不重要

4

4 回答 4

2

试试这个

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\filepath;Extended Properties="text;HDR=Yes;FMT=Delimited";

像这样的东西应该工作

  string strSql = "SELECT * FROM [" + fileName + "]"; 

  string strCSVConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";" + "Extended Properties='text;HDR=YES;'"; 

  // load the data from CSV to DataTable 

  OleDbDataAdapter oleda = new OleDbDataAdapter(strSql, strCSVConnString); 
  DataTable dtbCSV = new DataTable(); 
  oleda.Fill(dtbCSV); 
于 2012-11-28T13:23:03.377 回答
1

看看http://connectionstrings.com/textfile

连接字符串示例:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\;
Extended Properties="text;HDR=Yes;FMT=Delimited";
于 2012-11-28T13:23:49.677 回答
1

如何利用 .Net 提供的功能:

参考 Microsoft.VisualBasic 你可以使用TextFieldParser

using (var parser =
    new TextFieldParser(@"c:\data.csv")
        {
            TextFieldType = FieldType.Delimited,
            Delimiters = new[] { "," }
        })
{
    while (!parser.EndOfData)
    {
        string[] fields;
        fields = parser.ReadFields();
        //go go go!
    }
}
于 2012-11-28T13:28:38.140 回答
0

我找到了导致问题的原因。在 MS 网站上,他们讨论了一个 schema.ini 文件,该文件应该能够处理分隔文件 bla bla bla ,但我注意到,一旦您将所有设置放入注册表,它就会接管。因此,一旦我更改了注册表 ArsenMkrt 代码中的格式并且连接字符串正常工作,我就根据我的需要进行了调整,一切都很好。

感谢你们所有人,非常感谢 ArsenMkrt。

我爱C#

于 2012-11-28T15:30:22.973 回答