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

來源:互聯網
上載者:User

標籤:

在使用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));            }        }    }

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.