如何使用C#获取64位计算机中所有ODBC或访问数据源的列表

时间:2018-09-17 05:34:07

标签: c# odbc mdac

我的应用程序现在仅支持64位,并且我需要获取计算机上或新创建的所有ODBC或Access DataSouces。

以下代码已实现了32位提取列表的功能,但现在在调用SQLAllocEnv方法时崩溃了。

[DllImport("odbc32.dll")]
private static extern int SQLDataSources(
  int EnvHandle, int Direction, StringBuilder ServerName,
  int ServerNameBufferLenIn, ref int ServerNameBufferLenOut,
  StringBuilder Driver, int DriverBufferLenIn, ref int DriverBufferLenOut);

 [DllImport("odbc32.dll")]
 private static extern int SQLAllocEnv(ref int EnvHandle);

 [DllImport("odbc32.dll")]
 private static extern int SQLFreeEnv(int EnvHandle);

那么,有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

在某些帖子中,我发现将int数据类型更改为long是可以的,是的,在我的情况下也可以。