私は数日間問題を処理していますが、何も進展していません。私は、サイドプロジェクトのためにOracle.DataAccess(C#のOracle DBアクセス)をUnityに使用したいと思います。私はOracleクライアントとデータベース(正常に動作している)をインストールし、.Net 2.x用のOracle.DataAccess.dllファイル(Unityが認識できるもののみ)をAssetsフォルダに置き、コーディングを開始しました。ここで私は、すべてのDB通信のものを扱うことになったクラスで入力したものです:ユニティでOracle.DataAccessを使用しようとしたときにキャスト例外が無効になる
using System;
using System.Collections.Generic;
using UnityEngine;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
public static class DBConnection
{
//
static string Host;
static int Port;
static string SID;
static string Username;
static string Password;
//
static bool Initialized = false;
public static void Initialize(string host, int port, string sid, string username, string password)
{
if (Initialized) throw new Exception("DBConnection was already initialized !");
Host = host;
Port = port;
SID = sid;
Username = username;
Password = password;
}
static OracleConnection Connection;
public static void Open()
{
try
{
string connString = "user id=" + Username + ";password=" + Password + ";data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=+" + Host + ")(Port=" + 1521 + "))(CONNECT_DATA=(SERVICE_NAME=" + SID + "))";
using (Connection = new OracleConnection(connString))
{
// ...
}
}
catch (OracleException e)
{
Debug.LogError(e.ErrorCode);
}
}
}
オープン()を使用しようとしたら、それは私にこの例外を与える:
InvalidCastException: Cannot cast from source type to destination type.
Oracle.DataAccess.Client.CThreadPool..cctor()
Rethrow as TypeInitializationException: An exception was thrown by the type initializer for Oracle.DataAccess.Client.CThreadPool
Oracle.DataAccess.Client.OracleInit.Initialize()
Oracle.DataAccess.Client.OracleConnection..cctor()
Rethrow as TypeInitializationException: An exception was thrown by the type initializer for Oracle.DataAccess.Client.OracleConnection
DBConnection.Open() (at Assets/Sources/Database/DBConnection.cs:37)
Game.Start() (at Assets/Sources/Game/Game.cs:10)
そして、私はまだ理解できませんでしたそれはどこから来るのか。接続文字列は正しいです。例外は、OracleConnectionオブジェクトの作成中に発生します(オブジェクトの作成後に接続文字列を割り当てることによって、それを確認しました)。 DLLは64ビット、エディタは64ビット、Oracleクライアントも64ビットです。データベースはうまく動作します(SQL開発者に接続できるように管理されています)ので、率直に言って私はリードから外れています。これはあなたの誰にも起こりましたか?私を救う誰に事前に
ありがとう:D
ありがとう:
試しを逃す