关于 int count=(int)cmd.ExecuteScalar()的疑问;

 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读取的是单行单列数据?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值