关于C#中(int)与Convert.ToInt32();的区别

sb.AppendLine("insertQQUservalues("+QQID+",'"+NickName+"','"+PassWord+"','"+Email+"',... sb.AppendLine("insert QQUser values(" + QQID + ",'" + NickName + "','" + PassWord + "','" + Email + "',0,1) select @@IDENTITY");
上面这行代码,返回时只能用Convert.ToInt32();
return Convert.ToInt32(comm.ExecuteScalar());

sb.AppendLine("select count(*) from Admin where LoginID='" + userName + "' and LoginPwd='" + pwd + "'");却可以用int iRet = (int)comm.ExecuteScalar();
求解到底是怎么回事,不都是object类型吗,怎么一个能用(int)转,而另一个却转不了,必须得用Convert.ToInt32();
是不是就因为加了个select @@IDENTITY
展开
 我来答
匿名用户
2013-08-18
展开全部
这样也是可以的啊:
return (int)(comm.ExecuteScalar());

int iRet = Convert.ToInt32(comm.ExecuteScalar());

出现错误的原因是comm对象,与Convert.ToInt32、(int)无关
你的字符串好像是SQL的,应该是那个字符串的问题
更多追问追答
追问

return (int)(comm.ExecuteScalar());

指定的转换无效

这样写不行,是不是就是因为select @@IDENTITY的问题啊

那个不加select @@IDENTITY的话,其他地方貌似可以

追答
这样应该行了:
return (Int32)(comm.ExecuteScalar());
int与Int32有点不同...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式