c#里 Convert.ToInt32 提示越界了怎么改
protectedvoidCustomValidator1_ServerValidate(objectsource,ServerValidateEventArgsargs...
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
string userid = args.Value;
cn = sqldata.createcon();
cn.Open();
strsql = "select count(*) from users where userid='" + userid + "'";
cmd = new SqlCommand (strsql, cn);
int count = Convert.ToInt32(cmd.ExecuteScalar()); //--好像是传递学号位数的
if (count > 0)
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
cn.Close();
}
运行vb的时候显示的错误
int count = Convert.ToInt32(cmd.ExecuteScalar()); 说这个越界了
我输入的是一个学号,数据库里设置为int型的,当我输入15位以下的数就是对的,输入15位就提示越界了,但是我要求输15位数,请问要怎么改?改数据库里的int还是改代码? 展开
{
string userid = args.Value;
cn = sqldata.createcon();
cn.Open();
strsql = "select count(*) from users where userid='" + userid + "'";
cmd = new SqlCommand (strsql, cn);
int count = Convert.ToInt32(cmd.ExecuteScalar()); //--好像是传递学号位数的
if (count > 0)
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
cn.Close();
}
运行vb的时候显示的错误
int count = Convert.ToInt32(cmd.ExecuteScalar()); 说这个越界了
我输入的是一个学号,数据库里设置为int型的,当我输入15位以下的数就是对的,输入15位就提示越界了,但是我要求输15位数,请问要怎么改?改数据库里的int还是改代码? 展开
7个回答
展开全部
是什么数据库 SQL 2008吗? 改不了结构 设置里有个选项 把勾去掉 就可以了 具体什么不记得了 你百度一下 不过你这个 直接改这句 decimal count = Convert.decimal(cmd.ExecuteScalar()); 应该就可以了哦 因为是输出错误 而不是录入错误
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么类型的不重要,重要的ExecuteScalar方法的返回值。好好看看这个方法的返回说明,返回的数据是结果集中第一列第一行的数据。你要转换的也是这行的数据!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实最好是从2边都下手,学号既然上了15位,设置为Int类型就表明当初数据库设计没有考虑好。建议重新修改,如果数据库修改,那程序当然得跟着变了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-12-22
展开全部
超过int32最大范围了 用字符串不就行了么 看看 cmd.executescaler 的 返回值 是什么 要么就 convert.toint64
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-12-22
展开全部
试一下改成ToInt64 int类型也改为longint
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询