C#时间段查询方法

敢不敢在来一次 2012-11-26 09:42:02
写一个时间段查询的方法,下面是我初步写的查询方法,SQL语句在PLSQL中执行正确,在代码中报SQL语句异常,我想是下面那两个参数处理有问题,但又不知道怎么写,求大师们指点一下,不慎感激

public DataTable SelectStudentDateTime(string startDate=null, string endDate=null)
{
DataSet ds = null;
con = base.GetDBConn();
OracleCommand com = con.CreateCommand();
com.Connection = con;
StringBuilder sb = new StringBuilder();
sb.Append("select * from student where S_DATE
between to_data(startDate , 'DD-MM-YYYY') and to_data(endDate , 'DD-MM-YYYY'));

com.CommandText = sb.ToString();

OracleParameter para = new OracleParameter(":S_DATE ", OracleDbType.Date, 20);
para.Value = startDate;
com.Parameters.Add(para);

OracleParameter para = new OracleParameter(":S_DATE ", OracleDbType.Date, 20);
para.Value = endDate;
com.Parameters.Add(para);


ds = base.GetSqlExcuteRlt(ref com);
return ds.Tables[0];
}

...全文
242 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
感谢,前几天自己慢慢试出来了,我思路完全错了,是传值有问题,参数的GET,SET方法没给,一楼是对的,谢谢各位了
fangpengyu 2012-11-27
  • 打赏
  • 举报
回复
报什么错,楼主最好设置断点调试下,调试是最好的方法
你的选择B 2012-11-27
  • 打赏
  • 举报
回复
sql添加参数的语法:

SqlParameter param=new SqlParameter("@ID", SqlDbType.Int, 0);
param["@ID"]=1001;
只在此山中 2012-11-27
  • 打赏
  • 举报
回复
参考: sb.Append("select * from student where S_DATE between to_data(:startDate , 'DD-MM-YYYY') and to_data(:endDate , 'DD-MM-YYYY')); com.CommandText = sb.ToString(); OracleParameter para = new OracleParameter(":startDate", OracleDbType.Date, 20); para.Value = S_DATE; com.Parameters.Add(para); para = new OracleParameter(":endDate", OracleDbType.Date, 20); para.Value = S_DATE; com.Parameters.Add(para);

110,524

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧