C# 指定された DSN には、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています。の対処方法

.Net Framework 3.5 で開発したアプリケーションを Windows 10 64 bit で
実行し、ODBC(32bit)でデータベースアクセスしようとしたときに発生しました。

原因としては、アプリケーションの実行が64bitであるにも関わらず、
ODBCが32bitのため、このエラーメッセージが発生しました。

・アプリケーション:64bit
・OS:64bit
・ODBCドライバ:32bit

こんな状態です。アプリケーションとODBCドライバのアーキテクチャ(bit数)を
一緒にする必要があるようです。

対策は、32bitアプリケーションとして実行するように、ビルドオプションを変更しました。

プラットフォームターゲットが
・Any CPU の場合、OSのアーキテクチャによって32bitや64bitに変更されます。
・x86 の場合、OSのアーキテクチャによらず、32bitで実行されます。
・x64 の場合、OSのアーキテクチャによらず、64bitで実行されます。

ちなみに、実行時のbit数が32bitか64bitかを取得するソースを紹介します。

    /// <summary>
    /// 実行時のアーキテクチャが32Bitか64Bitかを判断する
    /// </summary>
    /// <param name="processBit"></param>
    /// <returns></returns>
    public static int GetRunningArch(out string processBit)
    {
        processBit = "";

        try
        {
            if (IntPtr.Size == 4) processBit = "32bit";
            else processBit = "64bit";

            return UEReturnCode.Normal;
        }
        catch
        {
            return UEReturnCode.Error;
        }

    }

速攻でメモできる QuickNote リリースしました!

QuickNoteは動作が超軽量でサクサクかけるノートアプリです。一瞬の閃きを逃さずにノートを開き書き始めることができます。 アカウント登録も不要です。お試しあれ!

Excel操作をコマンドで! proBoarderExcel

Excelはマウスで操作するのが基本ですが、マウス操作に疲れてはいませんか? キーボードでExcel操作ができるようになるアプリです。オープンソースで無料です。

積み上げ! Daily Stack リリースしました!

Daily Stack は日々の積み上げを管理するToDoアプリです。過去の積み上げの振り返りだけでなく、ツイート機能もあります。 アカウント登録不要ですぐに使い始めることができます。

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱