我使用SQL Server作为数据库将varchar值“359342067417520”的转换溢出int列
创造MVC-5 angularjs一个Web应用程序在一个地方,我正在将所有的移动我的详细信息购买,我创建SQL Server中的用户定义类型,看起来像这样
CREATE TYPE [dbo].[TyDetails] AS TABLE
(
[transmid] [varchar](50) NULL,
[modelNumber] [varchar](50) NULL,
[Color] [varchar](50) NULL,
[productType] [varchar](50) NULL,
[emeiNo] [varchar](50) NULL,
[emeiNo2] [varchar](50) NULL,
[Uprice] [float] NULL,
[brandid] [varchar](50) NULL
)
和只读存储过程,它看起来像这样
create proc [dbo].[Ins_details]
@tbl_data TyDetails readonly
as
begin
insert into tblTransactionD (TransactionMId, modelnumber, color, producttype, brandid, emeino, emeino2, price)
select *
from @tbl_data
end
现在主要表H ERE被命名为tblTransactionD
它看起来像这样
CREATE TABLE [dbo].[tblTransactionD]
(
[TransactionDId] [int] IDENTITY(1,1) NOT NULL,
[TransactionMId] [varchar](100) NULL,
[ProductName] [varchar](50) NULL,
[ModelNumber] [varchar](50) NULL,
[Color] [varchar](50) NULL,
[ProductType] [varchar](50) NULL,
[BrandId] [int] NULL,
[EmeiNo] [varchar](50) NULL,
[EmeiNo2] [varchar](50) NULL,
[Qty] [int] NULL,
[Price] [float] NULL,
[ProductTax] [decimal](18, 2) NULL,
CONSTRAINT [PK_tblTransactionD]
PRIMARY KEY CLUSTERED ([TransactionDId] ASC)
) ON [PRIMARY]
我穿过数据表和TYPE数据到我的数据库
我传递在博士[“emeiNo”] = EM1 [ID]的ToString();这里
这里是我的MVC的代码
DataTable dt = new DataTable();
dt.Columns.Add("transmid");//
dt.Columns.Add("modelNumber");//
dt.Columns.Add("color");//
dt.Columns.Add("productType");//
dt.Columns.Add("emeiNo");//
dt.Columns.Add("emeiNo2");//
dt.Columns.Add("Uprice");//
dt.Columns.Add("brandid");
for (int id = 0; id < ps.Modelnumber.Split(',').Length; id++)
{
string[] mod = ps.Modelnumber.Split(',');
string[] col = ps.Color.Split(',');
string[] typ = ps.phoneType.Split(',');
string[] em1 = ps.emei.Split(',');
string[] em2 = ps.emei2.Split(',');
string[] pri = ps.Uprice.Split(',');
string[] act = ps.onetwo.Split(',');
DataRow dr = dt.NewRow();
dr["modelNumber"] = mod[id].ToString();
dr["color"] = col[id].ToString();
dr["productType"] = typ[id].ToString();
dr["emeiNo"] = em1[id].ToString();
dr["emeiNo2"] = em2[id].ToString();
dr["Uprice"] = Convert.ToDouble(pri[id].ToString());
dr["transmid"] = getgu.ToString();
dr["brandid"] = ps.brandid.ToString();
dt.Rows.Add(dr);
}
SqlCommand cm = new SqlCommand("Ins_details");
cm.ExecuteNonQuery();
,但在我执行行我收到错误
类型“System.Data.SqlClient.SqlException”的异常出现在System.Data.dll,但未在用户代码中处理
其他信息:varchar值“359342067417520”的转换溢出了一个int列。
int的最大值是'2,147,483,647' –
专业提示:如果您有一个“数字”,并且对它进行数学运算没有意义(例如一个电话号码乘以另一个电话号码),则将它们存储为字符串,而不是数字。 –
您还可以在sql中使用bigint – PixelDev