0
我正在使用下面的OleDbCommand从文件方法多次读取。我遇到的问题是,大多数时候它将数据类型作为字符串返回,但偶尔(取决于正在读取的数据)它返回的int类型。有没有办法请求所有列返回为字符串,而不必在加载后转换所有内容?定义OleDbCommand返回类型
static DataTable GetDataTableFromCsv(string path, bool isFirstRowHeader)
{
string header = isFirstRowHeader ? "Yes" : "No";
string pathOnly = Path.GetDirectoryName(path);
string fileName = Path.GetFileName(path);
string sql = @"SELECT * FROM [" + fileName + "]";
using (OleDbConnection connection = new OleDbConnection(
@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathOnly +
";Extended Properties=\"Text;HDR=" + header + "\""))
using (OleDbCommand command = new OleDbCommand(sql, connection))
using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
{
DataTable dataTable = new DataTable();
dataTable.Locale = CultureInfo.CurrentCulture;
adapter.Fill(dataTable);
return dataTable;
}
}
你有没有听说过''LINQ''的?这是LINQ中你可以更轻松地完成的事情。 – abhi
@abhi来自textfile的数据表?会喜欢上面给出的例子。 – windowskm
您需要一个模式文件。请参阅以下发布:https://stackoverflow.com/questions/12259562/how-can-i-create-schema-ini-file-i-need-to-export-my-csv-file-to-datagridview。 – jdweng