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這二者的效能是否有差異??
張貼留言