小编Cra*_*g D的帖子

Microsoft.ACE.OLEDB.12.0提供程序无法再在Windows 8下打开.mdb

我有一个x64应用程序,它使用Microsoft.ACE.OLEDB.12.0提供程序在Windows 7(x64)上读取MS Access数据库,它工作正常(安装了Office 2010).

在安装了Office 2013的Windows 8下运行的同一应用程序失败,并显示一条消息,指出提供程序无法打开以前的版本.

在安装了Office 2013的Windows 8下,还有Microsoft.ACE.OLEDB.15.0,但我已经仔细检查了我的代码并确定它在连接字符串中指定了12.0.

这个提供商有不同的"版本" - 或者有什么我错过了吗?

我已经在Windows 8下重新编译了一个使用x86平台的测试程序,并将提供程序更改为Microsoft.Jet.OLEDB.4.0并且它再次运行.不幸的是,该模块是一个更大的生态系统的一部分,需要能够在x64下运行(特别是插入到excel),并且该套件通过应用程序从供应商的网站下载访问数据库,因此它是转换数据库或将所有内容更改为x86不切实际.

提前致谢.

oledb 64-bit ms-access windows-8 office-2013

12
推荐指数
2
解决办法
9万
查看次数

构建表达式树

我正在努力解决如何为更多lambda构建表达式树的想法,例如下面的那个,更不用说可能有多个语句的东西了.例如:

Func<double?, byte[]> GetBytes
      = x => x.HasValue ? BitConverter.GetBytes(x.Value) : new byte[1] { 0xFF };
Run Code Online (Sandbox Code Playgroud)

我很感激任何想法.

c# linq lambda expression-trees

6
推荐指数
1
解决办法
3082
查看次数

为元组制作通用类型

我已经明确地建立了如何在预先知道项目数量的情况下如下制作通用元组...

        Type t = typeof(Tuple<,,>);
        Type[] keys = new Type[] { typeof(string), typeof(string), typeof(int) };
        Type specific = t.MakeGenericType(keys);
Run Code Online (Sandbox Code Playgroud)

但是如果"keys"数组中的对象数量是可变的呢?如何以初始分配到"t"开始滚动球?

干杯.克雷格

c# generics reflection tuples

4
推荐指数
1
解决办法
3469
查看次数