下面是源代码:
public string kaizhuo(string orderTime, string userId, string tableId, string personNum)
{
// DateTime date = DateTime.Parse(orderTime);
// string orderId = DateTime.Now.ToString("yyyyMMddHHmm");
string sqlstr = string.Format("insert into OrderTbl([orderTime],[waiterId],[tableId],[personNum])values('{0}',{1},{2},{3})", orderTime, userId, tableId, personNum);
OleDbCommand cmd = new OleDbCommand(sqlstr, sqlCon);
string sqlstr1 = string.Format("select max(ID) as id from orderTbl");
if (cmd.ExecuteNonQuery() == 1)
{
cmd = new OleDbCommand(sqlstr1, sqlCon);
OleDbDataReader reader= cmd.ExecuteReader();
return reader[0].ToString();
}
else
return null;
}
下面是数据库表
,
程序执行后,返回的结果为:
其中第一个insert语句执行没问题,我已经调试过了,就是第二个select执行有问题。
希望大家帮忙解决,我在线等。。。
------解决方案--------------------
reader不能这么读吧,要加上这句:
if(reader.read())
{
return reader[0].ToString();
}
------解决方案--------------------
还有lz,reader读数据是单向的,你读过之后就没有了,包括你去监视reader的值。
------解决方案--------------------
就感觉这样读READER不太靠谱的样子……READE是单向前滚的,估计都读完了没数据了吧= -?