PDA

View Full Version : معادل عدد بزرگ (numeric) sqlserver در سی شارپ



nasimnastaran
چهارشنبه 01 دی 1395, 01:11 صبح
سلام
می خواستم ستونی از فیلدی که به صورت Numeric(18,0) در اس کیو ال هست با استفاده از سی شارپ "جمع" کنم . از double و Bigint استفاده کردم منتها خطای exception cast رو میده . حداکثر عدد موجود در ستون مورد اشاره ، 18 رقم می باشد .
نمونه کد :

string strsumF=@"SELECT SUM(distance) FROM tbldistance Where id_dist= " + getID;
SqlCommand cmdSum= new SqlCommand(strSumF,myConnection);
SumDist = (BigInteger)cmdSum.ExecuteScalar();

سپاس از راهنمای تون

codedeveloper
چهارشنبه 01 دی 1395, 12:06 عصر
سلام،
Decimal , uLong میتونی استفاده کنی

nasimnastaran
چهارشنبه 01 دی 1395, 22:01 عصر
سلام
استفاده از decimal هم همون خطا رو میده ..

ژیار رحیمی
چهارشنبه 01 دی 1395, 22:15 عصر
اگز مقادیر شما بزرگتر از بازه دیتاتیپ decimal هست بهتره از نوع داده BigInteger در سی شارپ استفاده نمایید (System.Numerics) و نوع داده برای ذخیره سازی در Sql بصورت nvarchar باشد. به راحتی می توان مقدار رو از دیتابیس خواند و تبدیل به BigInteger کرد و محاسبات لازم را روی آن انجام داد.
https://msdn.microsoft.com/en-us/library/system.numerics.biginteger(v=vs.110).aspx

//convert string to biginteger
BigInteger.Parse(string)
//convert biginteger to string
BigInteger.ToString()