.NETユーザー必見! Oracle 10gのお作法

連載第1回

小手調べにASP.NETからOracleに接続してみよう


日本オラクル
三谷 亮太
2007/3/14

C#用ソースコード




using System.Data;
using System.Data.Common;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
リスト1 ODP.NETとファクトリクラスのインポート設定(C#)



public class DataAccess {
    //DB接続関連はクラスで保有
    DbProviderFactory  factory;
    DbConnection conn;
    DbConnectionStringBuilder ocsb;
    DbCommand cmd;    
    DbDataAdapter da ;
    DataSet ds;
リスト2 データベース接続オブジェクトはクラスで保持する(C#)



public DbConnection DbConnect () {
    factory =
      DbProviderFactories.GetFactory("Oracle.DataAccess.Client");
    ocsb = factory.CreateConnectionStringBuilder();

    //接続文字列の設定
    ocsb["Data Source"] = "ORCL10GR2";
    ocsb["User ID"]  = "Scott";
    ocsb["Password"] = "Tiger";
    conn = factory.CreateConnection();
    conn.ConnectionString = ocsb.ConnectionString;

    //データベース接続
    conn.Open();
    return conn;
}
リスト3 データベース接続用メソッド(C#)
接続文字列は環境により変えてください。



public DataSet GetData() {
    conn = this.DbConnect();
    cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM DEPT";
    da = factory.CreateDataAdapter();
    da.SelectCommand = cmd;

    //SELECTの実行
    ds= new DataSet();
    da.Fill(ds);
    return ds;
}
リスト4 SELECT用メソッド(C#)



public void EditDept(Int32 DEPTNO, string DNAME, string LOC) {
    string sql;
    //パラメータは使いまわさないためメソッド内で宣言
    DbParameter prmDEPTNO;
    DbParameter prmDNAME;
    DbParameter prmLOC;

    //パラメータはバインド変数で渡す
    sql = "Update DEPT set "
          + " DNAME = :DNAME,"
          + " LOC = :LOC"
          + " Where DEPTNO = :DEPTNO";

    conn = this.DbConnect();
    cmd = conn.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = sql;

    //パラメータ定義
    prmDNAME = cmd.CreateParameter();
    prmDNAME.Value = DNAME;
    cmd.Parameters.Add(prmDNAME);

    prmLOC = cmd.CreateParameter();
    prmLOC.Value = LOC;
    cmd.Parameters.Add(prmLOC);

    prmDEPTNO = cmd.CreateParameter();
    prmDEPTNO.Value = DEPTNO;
    cmd.Parameters.Add(prmDEPTNO);

    //UPDATE実行
    cmd.ExecuteNonQuery();
}
リスト5 UPDATE用メソッド(C#)














Database Expert フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Database Expert 記事ランキング

本日月間