2 回答

TA貢獻1811條經驗 獲得超6個贊
你的代碼很奇怪,哪來的BindByName?還有那個oraCmd.Parameters.Add,根本沒有這個方法重載
后來查了一下,發現你用的是ODP.net
我沒用過這個
你用的是System.Data.OracleClient命名空間下的類嗎?
我按著你的寫法寫了一遍,我機器上測試通過:
首先
using System.Data.OracleClient;
OracleConnection oraCon = null;
OracleCommand oraCmd = null;
OracleDataReader oraRdr = null;
oraCon = new OracleConnection("data source=test;user id=test;password=test");
oraCmd = new OracleCommand("select * from tb where id=:id", oraCon);
OracleParameter oraPara = new OracleParameter("id", OracleType.NVarChar);
oraPara.Direction = ParameterDirection.Input;
oraPara.Value = "001";
oraCmd.Parameters.Add(oraPara);
oraCon.Open();
oraRdr = oraCmd.ExecuteReader(CommandBehavior.CloseConnection);
oraRdr.Read();
Response.Write(oraRdr[0].ToString());
oraRdr.Close();

TA貢獻1995條經驗 獲得超2個贊
OracleConnection oraCon = null;
OracleCommand oraCmd = null;
oraCon = new OracleConnection("Data Source=his2;User ID=scott;Password=tiger;Unicode=True");
oraCmd = new OracleCommand("select ename,sal from emp where empno=&empno", oraCon);
oraCmd.Parameters.Add("empno", OracleType.VarChar, 10, "empno").Value="7788";
oraCon.Open();
OracleDataReader oraRdr = oraCmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
while (oraRdr.Read())
{
Console.WriteLine("\t{0}\t{1}", oraRdr.GetString(0), oraRdr.GetInt32(1));
}
oraRdr.Close();
因為懶得建一張表去做測試,就用了oracle的初始emp表,你可以自己對照一下.
額對,補充一下,我看到你說用oraclecommand就沒有向樓上那樣去查到底是什么,認為就是System.Data.OracleClient這個命名空間下的東西了.
上面的編碼要能用需要添加這個引用
其次如果scott被鎖了要用sysdba打開...
命令:alter user scott account unlock;
添加回答
舉報