任何人都可以帮助我连接到 Microsoft 平面文件、扩展名 txt 的字符串吗?我只是想阅读一个用 | 分隔的 txt 文档 .
获取数据并尽可能通过DataAdapter将其加载到DataTable中,文件的第一行应该是DataTable上的列名,最后DataType在DataTable上并不重要
任何人都可以帮助我连接到 Microsoft 平面文件、扩展名 txt 的字符串吗?我只是想阅读一个用 | 分隔的 txt 文档 .
获取数据并尽可能通过DataAdapter将其加载到DataTable中,文件的第一行应该是DataTable上的列名,最后DataType在DataTable上并不重要
试试这个
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";
如何利用 .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#