public List<TableModel> GetModel(string name,DateTime maxrq,DateTime minrq)
{
string sqlstr="select * from table where name=:name and rq between :minrq and :maxrq";
OracleParameter[] param = new OracleParameter[] {
new OracleParameter ("name",OracleType .VarChar ),
new OracleParameter("maxrq",OracleType.DateTime),
new OracleParameter("minrq",OracleType.DateTime),
};
param[0].Value = name;
param[1].Value =minrq;
param[2].Value=maxrq;
OracleDataReader reader=DBHelperOracle.EcecuteRead(sqlstr,param);
List<TableModel > lModel=new List<TableModel> ();
if (reader.HasRows )
{
TableModel tModel=new TableModel ();
while (reader.Read())
{
tModel .name=reader.IsDBNull(0)?"匿名":reader.GetString(0);
tModel .age=reader.IsDBNull(1)?0:reader.GetInt32 (1);
tModel .gender=reader.IsDBNull(2)?true:reader.GetBoolean (2);
lModel .Add (tModel );
}
}
return lModel;
}
minrq ,maxrq为oralce数据库另一张表查询的返回的值.
reader的各列为null,tModel.name,tModel.age,tModel .gender为默认值。
但在在plsql Developer中用参数替换sql语句查询有值
select * from table where name='mike' and rq between to_date('2007-2-2','yyyy-mm-dd') and to_date('2007-2-16','yyyy-mm-dd')
请教那里可能出错具体点
遇到过啦,这个应该是数据同步的关系。首先你用sql查询出来的数据也许并没有在oracle中做提交事务这个操作,那么那个表的数据就是虚拟的,不是正确的。或者重新debug你的程序看看。
这个比较奇怪····