unicode path oledb问题

时间:2018-05-28 18:26:41

标签: windows oledb jet

我正在维护一些旧代码,并且在通过Jet.OleDB连接到Windows 7中的MSAccess数据库时遇到意外错误

在Windows 7中,以下代码失败,因为驱动程序找不到路径。 Windows XP和Windows 10中的相同代码工作并抛出预期的错误(因为.mdb文件为空)

using System.Data.OleDb;

namespace unicode_oledb_problem
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"ł.mdb";
            using (System.IO.File.Create(path)) { }
            string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", path);
            using (OleDbConnection conn = new OleDbConnection(connectionString))
            {
                conn.Open();
                // windows xp: OleDbException - Unrecognized database format
                // windows 7: OleDbException - Could not find file: ...
                // windows 10: OleDbException - Unrecognized database format
            }
        }
    }
}

0 个答案:

没有答案