OracleCommand oracmd = oracon.CreateCommand();
oracmd.CommandText = "select gas_user_no,vol_page,user_name,user_address,unit from gas_meter where gas_user_no = :gas_userno";
if (!oracmd.Parameters.Contains("gas_userno"))
{
oracmd.Parameters.Add(new OracleParameter("gas_userno", OracleDbType.Varchar2, ParameterDirection.Input));
}
oracmd.Parameters["gas_userno"].Value = “666666”
OracleDataAdapter da = new OracleDataAdapter();
da.SelectCommand = oracmd;
DataTable dt = new DataTable();
da.Fill(dt);
OracleDataReader dr = oracmd.ExecuteReader();
以下為轉載內容:
當 CommandType 屬性設置為StoredProcedure 時,CommandText 屬性應設置為存儲過程的名稱。如果存儲過程名稱包含任何特殊字符,則可能會要求用戶使用轉義符語法。當調用 Execute 方法之一時,該命令將執行此存儲過程。
用於 Oracle 的 .NET Framework 數據提供程序在向由CommandType.Text 的OracleCommand 調用的 SQL 語句傳遞參數時不支持問號 (?) 占位符。在這種情況下,必須使用命名的參數。例如:
復制代碼
示例
下面的示例創建一個 OracleCommand 並顯示其參數。要完成此任務,請向該方法傳遞一個OracleConnection、一個查詢字符串(它是 SQL SELECT 語句)和一個OracleParameter 對象數組。
public voidCreateOracleCommand(OracleConnection connection,stringqueryString, OracleParameter[] myParamArray)
{
OracleCommand command= newOracleCommand(queryString, connection);
command.CommandText=
"SELECT * FROM Emp WHERE Job = :pJob AND Sal = :pSal";for (int j = 0; j < myParamArray.Length; j++)
command.Parameters.Add(myParamArray[j]);string message = "";for (int i = 0; i < command.Parameters.Count; i++)
message+= command.Parameters[i].ToString() + "\n";
Console.WriteLine(message);using (OracleDataReader row =command.ExecuteReader())
{while(row.Read())
{
Console.WriteLine(row.GetValue(0));
}
}
}