大家都知道,在SQLSERVER中命名参数用的是@,而且在用的过程中也没发现过什么问题,但在Oracle中用的是“:”,却发现有一个问题,当命名参数是 date类型时,会提示无效的变量。
代码帖上来,大家帮我一下!
OracleConnection con = new OracleConnection("Data Source=myTest;Persist Security Info=True;User ID=myTest; Password=myTest; Unicode=True");
con.Open();
OracleCommand cmd = con.CreateCommand();
cmd.CommandText = "select * from sc_dmdb_tb where sc_dmdb_recno=:sc_dmdb_indate";
cmd.Parameters.Add(new OracleParameter(":sc_dmdb_date", OracleType.DateTime));
OracleDateTime time = new OracleDateTime(new DateTime(2007, 3,7));
cmd.Parameters[0].Value=time;
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
this.label1.Text = reader[0].ToString() + reader[1].ToString();
}
con.Close();
reader.Close();
注:::上面的sc_dmdb_date是日期类型的。。。
若不是日期类型则不会出现问题
在访问Oracle用命名参数所出现的问题。