[Mono-dev] 32bit OdbcDataReader DataTable.Load() works OK, but 64bit throws NullReferenceException
JinJi
dzindzinovic at yahoo.com
Mon Mar 16 10:12:35 UTC 2015
I am working with Monodevelop 4.0.1 that comes with the game engine Unity 5
64bit.
My ODBC driver in 64bit Windows 7 is:
Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) 14.00.7010.1000
ACEODBC.DLL date: 15.feb.2013
public DataTable ReadExcel(string fileName, string sheetName)
{
// ODBCJT32.DLL works with Unity 4.6 32bit, but not with Unity 5 64bit:
//string connectionString = "Driver={Microsoft Excel Driver (*.xls)};
DriverId=790; Dbq=" + fileName + ";";
// ACEODBC.DLL works with Unity 5 64bit:
string connectionString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx,
*.xlsm, *.xlsb)}; DriverId=790; Dbq=" + fileName + ";";
OdbcConnection connection = new OdbcConnection(connectionString);
string commandText = "SELECT * FROM [" + sheetName + "$]";
OdbcCommand command = new OdbcCommand(commandText, connection);
connection.Open();
OdbcDataReader dataReader = command.ExecuteReader();
DataTable dataTable = new DataTable();
dataTable.Load(dataReader); // works with ODBCJT32.DLL, but with
ACEODBC.DLL it throws NullReferenceException
dataReader.Close();
connection.Close();
return dataTable;
}
The line: "dataTable.Load(dataReader);" throws this exception:
NullReferenceException: Object reference not set to an instance of an object
System.Data.Odbc.OdbcDataReader.GetColumnAttribute (Int32 column,
FieldIdentifier fieldId)
System.Data.Odbc.OdbcDataReader.GetSchemaTable ()
Any help would be appreciated!
--
View this message in context: http://mono.1490590.n4.nabble.com/32bit-OdbcDataReader-DataTable-Load-works-OK-but-64bit-throws-NullReferenceException-tp4665640.html
Sent from the Mono - Dev mailing list archive at Nabble.com.
More information about the Mono-devel-list
mailing list