با سلام به دوستان گرامی.
من میخوام یکی از فیلدهای جدول رو بخونم و به ترتیب از بالا به پایین در یه عدد ضرب کنم و نتیجه رو در یه تیبل دیگه نمایش بدم. این کار رو با کد زیر انجام میدم.


SqlCommand cmd = new SqlCommand("select * from tbl_table", sqlConnection1);
sqlConnection1.Open();
SqlDataReader reader = cmd.ExecuteReader();
int FieldCount = reader.FieldCount;
object[] Values = new object[FieldCount];
while (reader.Read())
{
reader.GetValues(Values);


int mablag = reader.GetInt32(0);
for (int n = 2; n != FieldCount; n++)
{

double kol = (mablag * 700);

//statments for insert into DataBase
}
}
reader.Close();
sqlConnection1.Close();

مشکل اینجاست که وقتی اعداد کوچک و در حد میلیون باشه خیلی خوب جواب میده و مشکلی نداره اما وقتی اعداد به چند صد میلیون و میلیارد میرسه نتایج بدست اومده بسیار عجیب و غریبه با اینکه دو عدد مثبت در هم ضرب میشن اما نتایج اعداد بزرگ، نا مرتبط و منفی درمیادهر چقدر هم نوع های داده رو تغییر میدم نتیجه نمی گیرم. این خط از کد:

int mablag = reader.GetInt32(0);
فقط همین حالت رو قبول میکنه و در بقیه نوع های داده که استفاده میکنم خطای invalid cast میده. نوع داده در جدول bigint هست. خواهش میکنم کمکم کنید. متشکرم