Access中没数据.取int类型的MAX的时候有问题,请教一下.
1.int类型时:
如果没记录maxid,从1开始(如1 2 3 4 这样排列),如果有记录maxid取最大值后再加1.
conn = Connect.OpenNewConnection();
StringBuilder sb = new StringBuilder();
sb.Append("select max(id)as maxid from users");//虽然没记录,但是max还是会有个空行,
OleDbCommand selectSql = new OleDbCommand(sb.ToString(), conn);
OleDbDataReader datareader = selectSql.ExecuteReader();
if (没记录)//这个if else怎么写?
{ maxid =1}
else
{ maxid取最大值后加1}2.文本类型时:也是1 2 3 4这样排列,但是如果文本类型取最大值,9会大于10.这问题怎么解决?
1.int类型时:
如果没记录maxid,从1开始(如1 2 3 4 这样排列),如果有记录maxid取最大值后再加1.
conn = Connect.OpenNewConnection();
StringBuilder sb = new StringBuilder();
sb.Append("select max(id)as maxid from users");//虽然没记录,但是max还是会有个空行,
OleDbCommand selectSql = new OleDbCommand(sb.ToString(), conn);
OleDbDataReader datareader = selectSql.ExecuteReader();
if (没记录)//这个if else怎么写?
{ maxid =1}
else
{ maxid取最大值后加1}2.文本类型时:也是1 2 3 4这样排列,但是如果文本类型取最大值,9会大于10.这问题怎么解决?
尝试判断条件为 OleDbDataReader.Item (0) == DBNull
问题二:
应该转换为int以后比较或者你在录入他的string值的时候直接录入01,02,03---09
这样当new的时候,数据记录自动增加多好~
或者是说如果取 datareader 中的值也可以.. 如果用datareader.read()是不行吧,就算没记录,max也会有空行.
如果是,为何不试试用填充的datatable(order by ?)中去取最大的MAX项呢,似乎不会出错。