OracleParameter 的使用(參數名要以:開頭,不允許包含@等特殊字符)[轉]


在使用OracleParameters時,CommandText 中的參數要以":"開頭,不能包含@等特殊字符。而在其它地方引用到此參數時可以不必加上":",程序會自動為其加上":"

 

                    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 void CreateOracleCommand(OracleConnection connection,
        string queryString, OracleParameter[] myParamArray)
    {

        OracleCommand command = new OracleCommand(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));
            }
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM