使用变量绑定的简单select语句不提供任何行?
OracleConnection con = new OracleConnection(constr);
con.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = con;
cmd.CommandText = "select country_name from hr.countries where country_id = :country_id;
OracleParameter p_country_id = new OracleParameter();
p_country_id.OracleDbType = OracleDbType.Varchar2;
p_country_id.Value = "UK";
cmd.Parameters.Add(p_country_id);
OracleDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{} ---> no rows
尝试添加parameterName,方向,大小仍然是0 ???
任何帮助??
答案 0 :(得分:1)
我相信这一切都是正确的,但它是用NotePad编写的。至少它应该让你走上正确的轨道。
using (OracleConnection con = new OracleConnection(constr))
{
con.Open();
using (OracleCommand cmd = con.CreateCommand())
{
cmd.CommandText = "select country_name from hr.countries where country_id = :country_id";
cmd.Parameters.Add("country_id", "UK")
OracleDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
// You code here
}
}
}
注意:我将using
语句放在那里,因为在执行数据库查询时总是建议这样做。如果发生异常,using语句将保证您的数据库连接仍然关闭。
答案 1 :(得分:0)
您忘了给参数命名。这样做,它应该工作:
p_country_id.ParameterName = "country_id";
答案 2 :(得分:0)
感谢响应的人,我的单元测试项目app.config指向错误的数据库架构:(
Grrrrrrrrrrrrr!不能得到任何愚蠢然后这:)我会责怪我的流感:))