string sql="select count(*) from Student where StuId='"+username+"' and Password=''+password+"'";
cmd.CommandText= sql;
int count=(int)cmd.ExecuteScalar();
if(count>0)
return true;
else return false;
Object.Command.ExecuteScalar():执行查询,并返回查询结果的第一行第一列,忽略其他行其他列。
为什么(int)ExecuteScalar()有时能转换成功,有时候不能?不能的时候只有用convert.ToInt32()来转换?
ExecuteScalar这个方法是从数据库中检索单个值返回值是object类型,必须用与它在数据库里存放的类型相同类型或者可以转换成的类型,比如数据是nchar类型值为 "123" 就可以用(int)ExecuteScalar(),如果数据是nchar类型值为 "abc"就不能用(int)ExecuteScalar(),就得写string result = ExecuteScalar().ToString
读取单行数据时,ExecuteReader的read方法好像不能读取单行记录,当它一行读完时会自动跳到下行,直到读完为止。
如果是用ExecuteScalar读取的是单行单列数据?