PDA

View Full Version : سوال: اشکال این کد چیه ؟ همش میگه input string was not in correct format



NasimBamdad
شنبه 11 آبان 1392, 23:34 عصر
من این قطعه کد رو دارم . به صورت زیر
این متغییر های من هستند که در قسمت partial تعریف شدند


private Int64 kh_tarefe_khadamat = 0;
private Int64 kh_sahm_khadamat = 0;
private Int64 kh_feranshiz_khadamat = 0;
private Int64 kh_tarefe_tamin = 0;
private Int64 kh_sahm_tamin = 0;
private Int64 kh_feranshiz_tamin = 0;
private Int64 kh_tarefe_mosalah = 0;
private Int64 kh_sahm_mosalah = 0;
private Int64 kh_feranshiz_mosalah = 0;
private Int64 tarefe = 0;
private Int64 sazman = 0;
private Int64 feranshiz = 0;



try
{
db.SetCommand("Insert into khedmat_usage(patientid,khID,tedad) VALUES (@patientid,@khID,@tedad)");
db.SetParameter(@"patientid", PID);
db.SetParameter(@"khID", comboBox4.SelectedValue);
db.SetParameter(@"tedad", txtProNet6.Text);
db.exec();
txtProNet6.Clear();
comboBox2.Focus();
/////////
db.SetCommand("Select * From khedmat_type");
DataSet DS = db.GetData();
kh_tarefe_khadamat = Convert.ToInt64(DS.Tables[0].Rows[0]["kh_tarefe_khadamat"]);
kh_sahm_khadamat = Convert.ToInt64(DS.Tables[0].Rows[0]["kh_sahm_khadamat"]);
kh_feranshiz_khadamat = Convert.ToInt64(DS.Tables[0].Rows[0]["kh_feranshiz_khadamat"]);
kh_tarefe_tamin = Convert.ToInt64(DS.Tables[0].Rows[0]["kh_tarefe_tamin"]);
kh_sahm_tamin = Convert.ToInt64(DS.Tables[0].Rows[0]["kh_sahm_tamin"]);
kh_feranshiz_tamin = Convert.ToInt64(DS.Tables[0].Rows[0]["kh_feranshiz_tamin"]);
kh_tarefe_mosalah = Convert.ToInt64(DS.Tables[0].Rows[0]["kh_tarefe_mosalah"]);
kh_sahm_mosalah = Convert.ToInt64(DS.Tables[0].Rows[0]["kh_sahm_mosalah"]);
kh_feranshiz_mosalah = Convert.ToInt64(DS.Tables[0].Rows[0]["kh_feranshiz_mosalah"]);
db.exec();
////////
if (comboBox1.Text == "خدمات درمانی")
{
tarefe = kh_tarefe_khadamat * Convert.ToInt64(txtProNet6.Text);
sazman = kh_sahm_khadamat * Convert.ToInt64(txtProNet6.Text);
feranshiz = kh_feranshiz_khadamat * Convert.ToInt64(txtProNet6.Text);
}
else if (comboBox1.Text == "تامین اجتماعی")
{
tarefe = (kh_tarefe_tamin) * Convert.ToInt64(txtProNet6.Text);
sazman = (kh_sahm_tamin) * Convert.ToInt64(txtProNet6.Text);
feranshiz = (kh_feranshiz_tamin) * Convert.ToInt64(txtProNet6.Text);
}
else if (comboBox1.Text == "نیروهای مسلح")
{
tarefe = kh_tarefe_mosalah * Convert.ToInt64(txtProNet6.Text);
sazman = kh_sahm_mosalah * Convert.ToInt64(txtProNet6.Text);
feranshiz = kh_feranshiz_mosalah * Convert.ToInt64(txtProNet6.Text);
}

db.SetCommand("Insert into invoice(patientid,khID,tarefe,sazman,feranshiz) VALUES (@patientid,@khID,@tarefe,@sazman,@feranshiz)");
db.SetParameter(@"patientid", PID);
db.SetParameter(@"khID", comboBox4.SelectedValue);
db.SetParameter(@"tarefe", tarefe);
db.SetParameter(@"sazman", sazman);
db.SetParameter(@"feranshiz", feranshiz);
db.exec();
txtProNet6.Clear();
comboBox2.Focus();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
txtProNet6.Clear();
}

FillGrid();


من طبق روال معمول می خوام یک مقدار رو از دیتابیس بگیرم و در مقدار یک تکست باکس ضرب کنم



tarefe = (kh_tarefe_tamin) * Convert.ToInt64(txtProNet6.Text);
sazman = (kh_sahm_tamin) * Convert.ToInt64(txtProNet6.Text);
feranshiz = (kh_feranshiz_tamin) * Convert.ToInt64(txtProNet6.Text);



مثل این قسمت . اما هر کاری میکنم و هر جور Convert که می کنم بازم میگه

Input string was not in correct format . مقدار تکست باکسم هم فقط یک عدد هست !!

mhsmity
یک شنبه 12 آبان 1392, 01:08 صبح
txtProNet6.Text.Trim();

NasimBamdad
یک شنبه 12 آبان 1392, 11:01 صبح
این Trim هم کاری نکرد . موندم مشکل از کجاست

NasimBamdad
یک شنبه 12 آبان 1392, 12:36 عصر
اشکال از اینه که اون بالا یک کد Clear دارم به این شکل : txtProNet6.Clear(); .

این باعث میشه که تکس باکس خالی باشه و در نتیجه مقدار Null میشه و در Convert اشکال میشه !