1

使用变量绑定的简单选择语句不提供任何行?

  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 ,direction,size 仍然结果为 0???

有什么帮助吗??

4

3 回答 3

1

我相信这一切都是正确的,但它是用记事本写的。至少它应该让你走上正确的轨道。

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 语句将保证您的数据库连接仍然关闭。

于 2012-12-04T17:48:52.510 回答
0

你忘了给你的参数一个名字。这样做,它应该工作:

p_country_id.ParameterName = "country_id";
于 2012-12-04T17:13:02.970 回答
0

感谢您的回复,我的单元测试项目 app.config 指向错误的数据库架构 :(

呸呸呸呸!不能得到任何愚蠢的东西然后这个:)我会责怪我的流感:)

于 2012-12-07T11:34:15.790 回答