お世話になっております。
先日、C#でoralceのデータベースをアクセスする際に質問させていただきました。
(https://teratail.com/questions/63265)
その際にOracle.DataAccess.dllを使うことと、64bit、32bitを分けてプログラムを作成するべきだということを教えていただきました。
現在は全て32bitで作成し、ビルドするまでこぎつけることができました。
ですが、いざ動かそうとするとOracleCommandオブジェクトの宣言で例外エラーが出てしまい、正常に動作しません。
エラーの記述を探しましたが、滅多に出ないエラーなのか検索してもわかりませんでした。
使用する環境と作成した環境ののoracleのバージョンが違うと動かないのでしょうか?
もしそうでなければ解決方法をお答えください。
・追記
エラー情報は以下の通りです
'System.TypeInitializationException' の初回例外が GetInfo.exe で発生しました。
ソースコードは以下の通りです
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.IO;
using Oracle.DataAccess.Client;
namespace GetInfo
{
public class GetDataInfo
{
// 情報取得(引数:ID)
public string selectInfo(string strID)
{
string strSQL;
string selectedLow;
string connectionString = "Data Source=data_local;Persist Security Info=True;User ID=;Password=;Unicode=True";
selectedLow = "";
//接続先を定義(ここでエラーが出ています) using (OracleConnection con = new OracleConnection(connectionString)) { try { //DBを開く con.ConnectionString = "Data Source=data_local;Persist Security Info=True;User ID=****;Password=****;Unicode=True"; con.Open(); //IDを元にSQL文を発行 strSQL = "SELECT * FROM EATBKJ WHERE ID = " + strID; OracleCommand myCmd = new OracleCommand(strSQL, con); OracleDataReader myReader = myCmd.ExecuteReader(); //情報を取得する while (myReader.Read()) { selectedLow = myReader.GetString(0); } } //データ取得に失敗した場合 catch (Exception) { } //成否にかかわらず finally { //DBへの接続を切る con.Close(); } } //患者情報を返す return selectedLow; } }
}
回答2件
あなたの回答
tips
プレビュー