将表达式转换为数据类型int的算术溢出错误。 [英] Arithmetic overflow error converting expression to data type int.
本文介绍了将表达式转换为数据类型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 tobigint
which is a long and uselong.Parse(...)
这篇关于将表达式转换为数据类型int的算术溢出错误。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文