PDA

View Full Version : سوال: مشکل در try و catch



sara_noori
یک شنبه 23 آذر 1393, 12:57 عصر
با سلام و خسته نباشید خدمت شما
من یه کد نوشتم می خواهم وقتی در textbox چیزی می نویسم با کلید کردن بر روی دکمه نوشته ی درون textbox را در database ذخیره کند
کد بهصورت زیر است :

SqlConnection con1 = new SqlConnection("Data Source=.;Initial Catalog=Automobile1;Integrated Security=True");
private void button1_Click_1(object sender, EventArgs e)
{
try
{
if (tbrand.Text != " ")
{
SqlCommand com1 = new SqlCommand("insert into brands_tbl values(@brand)", con1);
com1.Parameters.AddWithValue("@brand", tbrand.Text);
con1.Open();
com1.ExecuteNonQuery();
con1.Close();
MessageBox.Show("برند جدید در سيستم ثبت گرديد", "موفقیت", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.bind_brand();
tbrand.Text = "";
}
else
{
MessageBox.Show("عنوان برند جدید را وارد نمایید", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch
{
MessageBox.Show(".در روند اجرای نرم افزار مشکلی پیش آمده است ", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}



این کد رو نوشتم وقتی بر روی textboxچیزی می نویسم قسمت cath اجرا میشه و وقتی در textbox چیزی نمی نویسم از قسمت try آن if اجرا میشه
مشکل کد من چیست؟
ممنوت میشم سریع جواب منو بدید.

ghossein
یک شنبه 23 آذر 1393, 13:36 عصر
سلام

میشه متن ارور قرار بدید تا دوستان بتونند بهتر کمکتون کنند.

Hadi-Hashemi
یک شنبه 23 آذر 1393, 16:35 عصر
if (tbrand.Text != " ")


این قسمت رو به




if (tbrand.Text != "")


تغییر بده ببین مشکلت حل میشه؟

mrprestige
یک شنبه 23 آذر 1393, 19:47 عصر
با سلام و خسته نباشید خدمت شما
من یه کد نوشتم می خواهم وقتی در textbox چیزی می نویسم با کلید کردن بر روی دکمه نوشته ی درون textbox را در database ذخیره کند
کد بهصورت زیر است :

SqlConnection con1 = new SqlConnection("Data Source=.;Initial Catalog=Automobile1;Integrated Security=True");
private void button1_Click_1(object sender, EventArgs e)
{
try
{
if (tbrand.Text != " ")
{
SqlCommand com1 = new SqlCommand("insert into brands_tbl values(@brand)", con1);
com1.Parameters.AddWithValue("@brand", tbrand.Text);
con1.Open();
com1.ExecuteNonQuery();
con1.Close();
MessageBox.Show("برند جدید در سيستم ثبت گرديد", "موفقیت", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.bind_brand();
tbrand.Text = "";
}
else
{
MessageBox.Show("عنوان برند جدید را وارد نمایید", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
catch
{
MessageBox.Show(".در روند اجرای نرم افزار مشکلی پیش آمده است ", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}



این کد رو نوشتم وقتی بر روی textboxچیزی می نویسم قسمت cath اجرا میشه و وقتی در textbox چیزی نمی نویسم از قسمت try آن if اجرا میشه
مشکل کد من چیست؟
ممنوت میشم سریع جواب منو بدید.

سلام ، میتونین بگید فیلد brand توی پایگاه داده تون از چه نوعی هست ؟?

sara_noori
یک شنبه 23 آذر 1393, 20:13 عصر
سلام brand از نوع int

sara_noori
یک شنبه 23 آذر 1393, 20:15 عصر
ارور نداره فقط درست نمایش نمی دهد

وقتی بر روی textboxچیزی می نویسم قسمت cath اجرا میشه و وقتی در textbox چیزی نمی نویسم از قسمت try آن if اجرا میشه

feryt20
یک شنبه 23 آذر 1393, 20:25 عصر
متن خطاتونو بنویسید یا یه عکسی از خطا بذارید راحت تر میشه راهنمایی کرد

mrprestige
یک شنبه 23 آذر 1393, 21:07 عصر
سلام brand از نوع int

مشکل از همین جاست که brand از نوع int هست و شما میخواین داده ای که از نوع int هست رو از طریق کنترل Text box تون یعنی tbrand ذخیره کنین . کنترل textbox در واقع محتوای رشته ای به خودش میگیره شما برای رفعش باید اون رو تبدیل کنین . شما دستور پارامتر تون رو به شکل تغییر بدید


com1.Parameters.Add("@brand", sqldbtype.int).value=convert.int32(tbrand.text);


همین . راستی ()com1.open رو قبل از if بزارید. ان شاا... مشکلتون حل بشه . موفق باشید

uniqueboy_ara
یک شنبه 23 آذر 1393, 22:49 عصر
شما try/Catch رو کامنت کن بعدش برنامه رو اجرا کن
ببین چه ارروری میده

حسین.کاظمی
دوشنبه 24 آذر 1393, 08:35 صبح
سلام
متد زیر چه کار میکنه؟؟؟ شاید مشکل از این باشه
this.bind_brand();