【发布时间】:2012-11-16 08:40:48
【问题描述】:
任何人都可以帮助我连接到 Microsoft 平面文件的字符串,扩展名为 txt 吗? 我只是想阅读一个用 | 分隔的 txt 文档.
如果可能的话,通过DataAdapter获取数据并将其加载到DataTable中,文件的第一行应该是DataTable上的列名,最后DataType在DataTable上并不重要
【问题讨论】:
标签: c#
任何人都可以帮助我连接到 Microsoft 平面文件的字符串,扩展名为 txt 吗? 我只是想阅读一个用 | 分隔的 txt 文档.
如果可能的话,通过DataAdapter获取数据并将其加载到DataTable中,文件的第一行应该是DataTable上的列名,最后DataType在DataTable上并不重要
【问题讨论】:
标签: c#
试试this
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);
【讨论】:
看看http://connectionstrings.com/textfile
示例连接字符串:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\txtFilesFolder\;
Extended Properties="text;HDR=Yes;FMT=Delimited";
【讨论】:
string。将 cjk 提供的字符串(使用正确的路径)分配给 ConnectionString 属性。
如何利用 .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!
}
}
【讨论】:
我找到了导致问题的原因。 在 MS 网站上,他们讨论了一个 schema.ini 文件,该文件应该能够处理分隔文件 bla bla bla ,但我注意到,一旦您将所有设置放入注册表,它就会接管。因此,一旦我更改了注册表 ArsenMkrt 代码中的格式并且连接字符串正常工作,我就根据自己的需要进行了调整,一切都很好。
感谢大家,非常感谢 ArsenMkrt。
我喜欢 C#
【讨论】: