2011-08-11

.Net for C# 與 Oracle Procedure 的使用

C# 連接 Oracle 的方式有二種: OleDbConnection 或 OracleConnection,

這二種連線方式會影響 Oracle Procedure 的使用方式 ( 參數傳遞 ),

使用 OleDbConnection 時, C#在呼叫與執行 Procedure, 參數名稱二者可以不同,

但若使用 OracleConnection 時, C# 與 Procedure 的參數名稱一定要相同。
假設有一個 Procedure:
PFunc ( var_name in varchar2 )
{
 .....
}

//OleDb 連線
OleDbConnection Conn = new OleDbConnection(DB_Config_Oracle);
Conn.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = Conn;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "PFunc";
command.Parameters.Add("var_name_xxx", OleDbType.VarChar).Value = "test";
//程式的參數名稱可自訂, 不用與Procedure的參數名稱相同
command.ExecuteNonQuery();

//Oracle連線
OracleConnection Conn = new OracleConnection(DB_Config_Oracle);
Conn.Open();
OracleCommand command = new OracleCommand();
command.Connection = Conn;
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "PFunc";
command.Parameters.Add("var_name", OracleType.VarChar).Value = "test";
//程式的參數名稱須與Procedure的參數名稱要相同
command.ExecuteNonQuery();

1 則留言:

匿名 提到...

c#與oracle procedure的小細節, 不錯不錯,
不知OleDbConnection與OracleConnection這二者的效能是否有差異??

張貼留言


好康相報...

點我.. 點我.. 點我.. 由我推薦加入 BlogAD 和 BloggerAds.. 成為我下線吧.. 網路力量大..

BlogAD部落格廣告行銷 BlogAD部落格廣告行銷 BlogAD部落格廣告行銷 BlogAD部落格廣告行銷