PDA

View Full Version : سوال: این Try , Catch چی میگه ؟؟



NasimBamdad
سه شنبه 20 فروردین 1392, 13:13 عصر
int row = dataGridView1.CurrentRow.Index;
string pid = dataGridView1[1, row].Value.ToString();
pidz = pid;
////////

cmd.Connection = cnn;
cnn.Open();
cmd.CommandText = @"SELECT dbo.patients.pidz, dbo.patients.id AS PID, dbo.patients.fname, dbo.patients.lname, dbo.patients.birthday, dbo.patients.age, dbo.patients.tel,
dbo.surgeons.full_name AS Jarah, dbo.surgery_type.surgery_name, dbo.pezeshk_bihooshi.full_name AS pezeshk_bihooshi, dbo.patients.address,
dbo.patients.reg_tarikh_shamsi, dbo.bime_type.bime_name, dbo.patients.takhfif, dbo.patients.takhfif_pezeshk, dbo.patients.serialz_daftarche, dbo.patients.notice,
dbo.patients.tarkhis_notice, dbo.patients.canceled, dbo.takmili_type.takmili_name, dbo.patients.release_status, dbo.patients.sex, dbo.patients.khadamat_type,
dbo.patients.saghf_takmili2, dbo.patients.tamin_type, dbo.patients.tarikh_etebar_daf, dbo.patients.code_tashkhis_aval, dbo.patients.code_tashkhis_dovom,
dbo.patients.code_jarahi, dbo.patients.saat_p, dbo.patients.date_t, dbo.patients.global, dbo.patients.saat_t, dbo.nazer_names.nazer_name, dbo.patients.takhfif_note,
dbo.marriage.marry, dbo.nesbat_bime_code.nesbat_name, dbo.invoice_surgeons.markaz_cost, dbo.surgery_type.id AS surgery_type_id,
dbo.pezeshk_bihooshi.id AS pezeshk_bihooshi_id, dbo.bime_type.id AS bime_type_id, dbo.marriage.id AS marriage_id,
dbo.nesbat_bime_code.id AS nesbat_bime_code_id, dbo.takmili_type.id AS takmili_type_id, dbo.nazer_names.id AS nazer_names_id,
dbo.surgeons.id AS surgeons_id, dbo.patients.surgeon_name, dbo.patients.surgery_type AS ST, dbo.patients.pezeshk_bihooshi AS PB2, dbo.patients.marriage,
dbo.patients.bime_status, dbo.patients.takmili, dbo.patients.nesbat_code, dbo.patients.nazer_code, dbo.patients.saghf_takmili, dbo.patients.meli_code,
dbo.patients.father_name
FROM dbo.patients LEFT OUTER JOIN
dbo.surgeons ON dbo.patients.surgeon_name = dbo.surgeons.id LEFT OUTER JOIN
dbo.surgery_type ON dbo.patients.surgery_type = dbo.surgery_type.id LEFT OUTER JOIN
dbo.pezeshk_bihooshi ON dbo.patients.pezeshk_bihooshi = dbo.pezeshk_bihooshi.id LEFT OUTER JOIN
dbo.bime_type ON dbo.patients.bime_status = dbo.bime_type.id LEFT OUTER JOIN
dbo.takmili_type ON dbo.patients.takmili = dbo.takmili_type.id LEFT OUTER JOIN
dbo.nazer_names ON dbo.patients.nazer_code = dbo.nazer_names.id LEFT OUTER JOIN
dbo.nesbat_bime_code ON dbo.patients.nesbat_code = dbo.nesbat_bime_code.id LEFT OUTER JOIN
dbo.marriage ON dbo.patients.marriage = dbo.marriage.id LEFT OUTER JOIN
dbo.invoice_surgeons ON dbo.patients.id = dbo.invoice_surgeons.patientid
WHERE dbo.patients.id = '" + pid + "'";
SqlDataAdapter da22 = new SqlDataAdapter(cmd);
DataSet ds22 = new DataSet();
da22.Fill(ds22);
cnn.Close();


insurance = Convert.ToString(ds22.Tables[0].Rows[0]["bime_status"]);
string BIM = Convert.ToString(ds22.Tables[0].Rows[0]["bime_status"]);


textBox3.Clear();
comboBox13.DataSource = null;
comboBox13.DisplayMember = "";
comboBox13.ValueMember = null;
comboBox14.DataSource = null;
comboBox14.DisplayMember = "";
comboBox14.ValueMember = null;
comboBox10.SelectedIndex = 3;
comboBox9.SelectedIndex = 3;

try
{
textBox2.Text = Convert.ToString(ds22.Tables[0].Rows[0]["PID"]);
txtProNet6.Text = Convert.ToString(ds22.Tables[0].Rows[0]["date_t"]);
textBox4.Text = Convert.ToString(ds22.Tables[0].Rows[0]["fname"]);
textBox5.Text = Convert.ToString(ds22.Tables[0].Rows[0]["lname"]);
string sexz = Convert.ToString(ds22.Tables[0].Rows[0]["sex"]);
if (sexz == "مرد")
{
comboBox6.SelectedIndex = 0;
}
else
{
comboBox6.SelectedIndex = 1;
}
string rel = Convert.ToString(ds22.Tables[0].Rows[0]["release_status"]);
if (rel == "ترخيص است")
{
comboBox7.SelectedIndex = 0;
}
else
{
comboBox7.SelectedIndex = 1;
}
string canc = Convert.ToString(ds22.Tables[0].Rows[0]["canceled"]);
if (canc == "کنسل است")
{
comboBox8.SelectedIndex = 0;
}
else
{
comboBox8.SelectedIndex = 1;
}


string saghfzzz = Convert.ToString(ds22.Tables[0].Rows[0]["saghf_takmili"]);
if (saghfzzz == "99999999999999999")
{
comboBox11.SelectedIndex = 0;
}
else
{
comboBox11.SelectedIndex = 1;
}

textBox15.Clear();
textBox15.Text = Convert.ToString(ds22.Tables[0].Rows[0]["age"]);
textBox18.Clear();
textBox18.Text = Convert.ToString(ds22.Tables[0].Rows[0]["tel"]);
textBox11.Clear();
textBox11.Text = Convert.ToString(ds22.Tables[0].Rows[0]["takhfif"]);
textBox12.Clear();
textBox12.Text = Convert.ToString(ds22.Tables[0].Rows[0]["takhfif_pezeshk"]);
textBox13.Clear();
textBox13.Text = Convert.ToString(ds22.Tables[0].Rows[0]["takhfif_note"]);
textBox7.Clear();
textBox7.Text = Convert.ToString(ds22.Tables[0].Rows[0]["tarkhis_notice"]);
textBox14.Clear();
textBox14.Text = Convert.ToString(ds22.Tables[0].Rows[0]["code_jarahi"]);
textBox8.Clear();
textBox8.Text = Convert.ToString(ds22.Tables[0].Rows[0]["saghf_takmili"]);
textBox9.Clear();
textBox9.Text = Convert.ToString(ds22.Tables[0].Rows[0]["saat_p"]);
textBox10.Clear();
textBox10.Text = Convert.ToString(ds22.Tables[0].Rows[0]["saat_t"]);
textBox19.Clear();
textBox19.Text = Convert.ToString(ds22.Tables[0].Rows[0]["markaz_cost"]);
textBox22.Clear();
textBox22.Text = Convert.ToString(ds22.Tables[0].Rows[0]["address"]);
textBox16.Clear();
textBox16.Text = Convert.ToString(ds22.Tables[0].Rows[0]["meli_code"]);
textBox6.Clear();
textBox6.Text = Convert.ToString(ds22.Tables[0].Rows[0]["father_name"]);
////
comboBox2.DataSource = ds22.Tables[0];
comboBox2.DisplayMember = "Jarah";
comboBox2.ValueMember = "surgeons_id";
string jz = Convert.ToString(ds22.Tables[0].Rows[0]["surgeon_name"]);
jarah();
comboBox2.SelectedValue = jz;
////
comboBox3.DataSource = ds22.Tables[0];
comboBox3.DisplayMember = "surgery_name";
comboBox3.ValueMember = "surgery_type_id";
string soso = Convert.ToString(ds22.Tables[0].Rows[0]["ST"]);
jarahi();
comboBox3.SelectedValue = soso;
////
comboBox4.DataSource = ds22.Tables[0];
comboBox4.DisplayMember = "pezeshk_bihooshi";
comboBox4.ValueMember = "pezeshk_bihooshi_id";
string p_bihooshi = Convert.ToString(ds22.Tables[0].Rows[0]["PB2"]);
bihooshi();
comboBox4.SelectedValue = p_bihooshi;
////
comboBox1.DataSource = ds22.Tables[0];
comboBox1.DisplayMember = "bime_name";
comboBox1.ValueMember = "bime_type_id";
string bimez = Convert.ToString(ds22.Tables[0].Rows[0]["bime_status"]);
bime2();
comboBox1.SelectedValue = bimez;
////
comboBox5.DataSource = ds22.Tables[0];
comboBox5.DisplayMember = "takmili_name";
comboBox5.ValueMember = "takmili_type_id";
string takmiliz = Convert.ToString(ds22.Tables[0].Rows[0]["takmili"]);
takmili2();
comboBox5.SelectedValue = takmiliz;
////
comboBox12.DataSource = ds22.Tables[0];
comboBox12.DisplayMember = "marry";
comboBox12.ValueMember = "marriage_id";
string marryz = Convert.ToString(ds22.Tables[0].Rows[0]["marriage"]);
marry();
comboBox12.SelectedValue = marryz;

birthday_picker1.Text = Convert.ToString(ds22.Tables[0].Rows[0]["birthday"]);
txtProNet3.Text = Convert.ToString(ds22.Tables[0].Rows[0]["reg_tarikh_shamsi"]);

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}



این قطعه کد رو در قسمت Cell Click یک گرید قرار دادم که در نتیجه اون یکسری TextBox و ComboBox پر می شوند .

متاسفانه یک Error میده که میگه


input string was not in correct format .


از کجا بفهمم مربوط به کدوم قسمته ؟ تریس هم کردم ، آخرش بر می گرده به قسمت Catch و این Error رو می نویسه

morteza271
سه شنبه 20 فروردین 1392, 13:16 عصر
واو عجب کد و عجب کوئری ای!!!!

وقتی که تریس کردی روی کدوم خط بودی که پرید به قسمت catch ؟؟

احتمالا میخوای یه عبارت رشته ای رو به عدد تبدیل کنی که خطا میده!!!
و شایدم داری یه عبارت null رو به string تبدیل میکنی!

saman-arsenal
سه شنبه 20 فروردین 1392, 13:19 عصر
سلام
این خطا میگه که داری یه مقداری رو میریزی داخل بانکت که نوعش با اون نوعی که توو بانک تعریف کردی متناسب نیست

NasimBamdad
سه شنبه 20 فروردین 1392, 13:51 عصر
از هیچ کدام نپرید به Catch . وقتی که تمام خطوط تریس شدند ، دیگه نوبت Catch شد ( آخه واسه Catch هم Break Point گذاشتم) وقتی رسید به Catch اررور رو داد!

morteza271
سه شنبه 20 فروردین 1392, 14:03 عصر
امکان نداره!!!
در صورتی که خطا نداشته باشه اصلا به قسمت Catch نمیره!!! وقتی میره به این قسمت پس مشخصه که یکی از کدهای بخش try خطا داده که پریده به اون قسمت...

NasimBamdad
سه شنبه 20 فروردین 1392, 14:21 عصر
این Trace کردن رو آخرش یاد نگرفتم . Try و Catch رو برداشتم و مشخص شد که مربوط به کدام قسمته و منم درستش کردم

ممنونم !

Mahmoud.Afrad
سه شنبه 20 فروردین 1392, 18:07 عصر
وقتی نمیدونی از کدوم خط خطا میگیره ، روی اولین خط یک بریک پوینت بزار و دیباگ کن. وقتی بخواد کدها رو اجرا کنه به خط مورد نظر میرسه و متوقف میشه ، حالا از این به بعد با F11 تریس میکنی. به خطی که خطا داره میرسی و بعد به Catch منتفلت میکنه.
بهتره در زمان دیباگ در قسمت Catch علاوه بر message توضیحات دیگه Exception رو هم ببینی چیه. مثلا ex.ToString در این حالت شماره خطی که خطا میده رو بهت نشون میده.
StachTrace هم منبع خطا رو میده.

catch (Exception ex)
{
MessageBox.Show(ex.ToString() + "\n\n\n" + ex.StackTrace);
}

فقط در آخر موقعی که کار بدرستی تمام شد و خطا رو برطرف کردی میتونی همون ex.Message را جایگذین کنی.