C#用ソースコード


public Int32 UpdateSalary(Int32 empNo,Int32 salary)
{
    Int32 retVal;
    conn = this.DbConnect();

    DbCommand cmd = conn.CreateCommand();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "UPDATESALARY";

    //戻り値パラメータを指定
    DbParameter param1 = cmd.CreateParameter();
    param1.Direction = ParameterDirection.ReturnValue;
    param1.DbType = DbType.Int32;
    cmd.Parameters.Add(param1);

    DbParameter param2 = cmd.CreateParameter();
    param2.Value = empNo;
    cmd.Parameters.Add(param2);

    DbParameter param3 = cmd.CreateParameter();
    param3.Value = salary;
    cmd.Parameters.Add(param3);

    //ストアドプロシージャ実行
    cmd.ExecuteNonQuery();
    retVal = Int32.Parse(param1.Value.ToString());
    return retVal;
}
リスト2 .NETからストアドファンクションを呼び出す(C#)

public DataSet GetEmpData()
{
    conn = this.DbConnect();
    cmd = conn.CreateCommand();
    cmd.CommandText = "SELECT * FROM EMP";
    da = factory.CreateDataAdapter();
    da.SelectCommand = cmd;
    //EMP表から全件取得
    ds = new DataSet();
    da.Fill(ds);
    return ds;
}
リスト3 従業員情報の取得(C#)


[WebMethod]
public Int32 UpdateSalary(Int32 empNo,Int32 salary){
    DataAccess da = new DataAccess();
    return da.UpdateSalary(empNo,salary); 
}
リスト4 給料列の更新(Webサービス、C#)


[WebMethod]
public System.Data.DataSet GetEmpData()
{
    DataAccess da = new DataAccess();
    return da.GetEmpData();
}
リスト5 従業員情報の取得(Webサービス、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;

    //環境変数を設定
    Environment.SetEnvironmentVariable("ORA_DEBUG_JDWP", 
        "mymachine.ourdomain.com;port=8888",
        EnvironmentVariableTarget.Process);
    //データベース接続
    conn.Open();
    return conn;
}
リスト6 データベース接続メソッドに環境変数の設定を追加(C#)
:マシン名は環境に応じて書き換えてください