没办法,出100分征求答案:ExecuteScalar得到的object,等于0时无法强制转成int
数据库内容:
id name
0 wawa
OledbDataCommand dbComm=new OleDbDataCommand("select max(id) from tb_temp",myConn);
MessageBox.Show(dbComm.ExecuteScalar().GetType().ToString());
显示:System.Int16
然后:
OledbDataCommand dbComm=new OleDbDataCommand("select max(id) from tb_temp",myConn);
MessageBox.Show(dbComm.ExecuteScalar().ToString());
显示:0
然后:
OledbDataCommand dbComm=new OleDbDataCommand("select max(id) from tb_temp",myConn);
int maxid=(int)dbComm.ExecuteScalar();//在这里报错:指定的转换无效,使用long maxid=(long)dbComm.ExecuteScalar();也不行
MessageBox.Show(maxid.ToString());
后又测试:
int i=0;
object objI=(object)0;
MessageBox.Show((int)objI);
又通过了
为什么?百思不解