将表达式转换为数据类型int的算术溢出错误。 [英] Arithmetic overflow error converting expression to data type int.

查看:207
本文介绍了将表达式转换为数据类型int的算术溢出错误。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

表格结构



 userid int 
fname varchar(50)
lname varchar(50)
电子邮件varchar(50)
电话varchar(50)















商店手续





  ALTER   procedure  [dbo]。[AddUser ]  @ userid   int  @ fname  < span class =code-keyword> varchar ( 50 ), @ lname   varchar  50 ), @ Email   varchar  50 ), @ Phone   varchar  50 
as
insert into UserInfo(Userid ,Fname,Lname,电子邮件,电话) @ userid @fname @ lname @ Email @ Phone









this是代码





 受保护 < span class =code-keyword> void  Button1_Click( object  sender,EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings [ con1 ]);
尝试
{
con.Open();
SqlCommand cmd = new SqlCommand( AddUser ,CON);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue( @ userid的Int32 .Parse(TextBox1.Text.Trim()));
cmd.Parameters.AddWithValue( @ fname,TextBox2.Text);
cmd.Parameters.AddWithValue( @ lname,TextBox3.Text);
cmd.Parameters.AddWithValue( @ Email,TextBox4.Text);
cmd.Parameters.AddWithValue( @ Phone,TextBox5.Text);
cmd.ExecuteNonQuery();
Label1.Text = 记录已成功添加!;
}
catch (例外en)
{
Label1.Text = 重试添加;
}
}







当我插入电话价值时出现错误,例如.9837747473 ...

解决方案

int 数据类型的范围是-2,147,483,648到+2,147,483,647,所以9837747473不适合。



尝试将您的用户ID更改为 bigint 这是一个很长的并使用 long.Parse(...)

Table structre

userid int
fname varchar(50)
lname varchar(50)
Email varchar(50)
Phone varchar(50)








store procedure


ALTER procedure [dbo].[AddUser] @userid int,@fname varchar(50),@lname varchar(50),@Email varchar(50),@Phone varchar(50)
as
insert into UserInfo(Userid,Fname,Lname,Email,Phone) values(@userid,@fname,@lname,@Email,@Phone)





this is code


protected void Button1_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["con1"]);
        try
        {
            con.Open();
            SqlCommand cmd = new SqlCommand("AddUser",con);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@userid",Int32.Parse(TextBox1.Text.Trim()));
            cmd.Parameters.AddWithValue("@fname",TextBox2.Text) ;
            cmd.Parameters.AddWithValue("@lname",TextBox3.Text) ;
            cmd.Parameters.AddWithValue("@Email",TextBox4.Text);
            cmd.Parameters.AddWithValue("@Phone",TextBox5.Text);
            cmd.ExecuteNonQuery();
            Label1.Text = "Record Has Been Added Successfully!";
        }
        catch (Exception en)
        {
            Label1.Text = "Retry to add";
        }
    }




getting error on when i insert phone value eg.9837747473...

解决方案

int data type has a range of −2,147,483,648 to +2,147,483,647, so 9837747473 will not fit.

Try changing your userid to bigint which is a long and use long.Parse(...)


这篇关于将表达式转换为数据类型int的算术溢出错误。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆