问题描述
打个比方,想查询一本书的印刷日期,如果此日期与今天的日期相差不到30天,则印刷成本=100,否则印刷成本=200.我刚接触这些东西,属于啥都不懂系列.求大神能把从数据库连接到,到查询,到计算出结果的代码写出来,不胜感激啊.
解决方案
解决方案二:
用select印刷日期from表where书名="csdn"得到datatime印刷日期dt1用datatime.now获取当期日期dt2然后用TimeSpanspan=dt2.Subtract(dt1);intdayDiff(相差天数)=span.Days;然后再用if判断dayDiff就可以了思路就是这样了你自己具体情况具体分析下就可以了
解决方案三:
access中的判断日期间隔,作为条件语句,相当于sqlserver的casewhen资料自己google
解决方案四:
引用1楼的回复:
用select印刷日期from表where书名="csdn"得到datatime印刷日期dt1用datatime.now获取当期日期dt2然后用TimeSpanspan=dt2.Subtract(dt1);intdayDiff(相差天数)=span.Days;然后再用if判断dayDiff就可以了思路就是这样了你自己具体情况具体分析下就……
谢谢你的回答,不过我还有一个事情搞不懂.加入表名是book,要查询的字段是"ysrq",我这样写为什么报错OleDbConnectionobjConnection;stringstrConnection="Provider=Microsoft.Jet.OleDb.4.0;DataSource=d:/test.mdb";objConnection=newOleDbConnection(strConnection);ds=newDataSet();objConnection.Open();sda=newOleDbDataAdapter("selectmax(ysrq)frombookwheretsbh='"+tsbh.Text+"'andysc='"+ysc.Text+"'",objConnection);sda.Fill(ds,"book");DateTimeold=(DateTime)ds.Tables["book"].Rows(0)["ysrq"];在最后一个行Rows那里提示错误,说什么cannotbeusedlikeamethod
解决方案五:
sda=newOleDbDataAdapter("selectmax(ysrq)asysrqfrombookwheretsbh='"+tsbh.Text+"'andysc='"+ysc.Text+"'",objConnection);
解决方案六:
已解决,代码如下:DataSetds;OleDbConnectionobjConnection;stringstrConnection="Provider=Microsoft.Jet.OleDb.4.0;DataSource=d:/test.mdb";objConnection=newOleDbConnection(strConnection);ds=newDataSet();objConnection.Open();sda=newOleDbDataAdapter("selectmax(ysrq)asysrqfrombookwheretsbh='"+tsbh.Text+"'andysc='"+ysc.Text+"'",objConnection);sda.Fill(ds,"book");DateTimeold=Convert.ToDateTime(ds.Tables["book"].Rows[0]["ysrq"]);DateTimenow=Convert.ToDateTime(jtrq.Text);TimeSpanspan=now.Subtract(old);intdays=span.Days;