问题描述
SellListsell=newSellList();SqlConnectioncon=newSqlConnection("server=.;uid=sa;pwd=sa;database=PriceDB");con.Open();stringsql="selectmax(SellNum)fromSellwhereDate='"+DateTime.Now+"'";SqlCommandcmd=newSqlCommand(sql,con);try{SqlDataReaderdr=cmd.ExecuteReader();if(dr!=null){if(dr.Read()){intnum=Convert.ToInt32(cmd.ExecuteScalar().ToString());sell.SellNum=Convert.ToString(num+1);}}else{stringdate=DateTime.Now.ToString("yyyyMMdd");sell.SellNum="date"+"001";}dr.Close();}catch(Exceptionex){Response.Write(ex.Message);}finally{con.Close();}boolbol=PriceBLL.SellManager.Add(sell);if(bol){GridViewShow.DataSource=PriceBLL.SellManager.GetSellList(sell.SellNum);GridViewShow.DataBind();}else{Response.Write("<script>alert('添加失败!')</script>");}问题1:stringsql="selectmax(SellNum)fromSellwhereDate='"+DateTime.Now+"'";加上Date='"+DateTime.Now+"'就查询不出来数据库有当前日期的问题2:已有打开的与此命令相关联的DataReader,必须首先将它关闭问题3:sell.SellNum=Convert.ToString(num+1);sell.SellNum="date"+"001";这样写可行吗?
解决方案
解决方案二:
stringsql="selectmax(SellNum)fromSellwhereDate='"+DateTime.Now+"'";加上Date='"+DateTime.Now+"'就查询不出来数据库有当前日期的你这个now精确到秒了。
解决方案三:
引用1楼haa17的回复:
stringsql="selectmax(SellNum)fromSellwhereDate='"+DateTime.Now+"'";加上Date='"+DateTime.Now+"'就查询不出来数据库有当前日期的你这个now精确到秒了。
看看你这个时间是否和数据库里面精确的数位一样,我记得好像用cast函数转换一下就好了
解决方案四:
为什么不从数据库获取当前时间,而从客户端或应用服务器获取呢。引用1楼haa17的回复:
stringsql="selectmax(SellNum)fromSellwhereDate='"+DateTime.Now+"'";加上Date='"+DateTime.Now+"'就查询不出来数据库有当前日期的你这个now精确到秒了。
解决方案五:
数据库里的时间格式:2012-3-270:00:00