PDA

View Full Version : مدیریت استثنا در datagridview



diba_gh
جمعه 27 فروردین 1389, 17:29 عصر
من از این کد برای نمایش اطلاعات در دیتاگرید ویو استفاده می کنم

strCon = "Integrated Security=true;Database=fadak;Server=localhost;";
con = new SqlConnection(strCon);
cmdSelect = new SqlCommand("select [name],tell,address,city1,city2 from tell WHERE city2 like N'%" + textBox1.Text + "%' ", con);
SqlDataReader dr;
dt = new DataTable();
con.Open();
dr = cmdSelect.ExecuteReader();
dt.Load(dr);
con.Close();

this.dataGridView1.DataSource = dt;

با استفاده از دستور try/catch چه طور می شود گفت که اگر رکوردی در جستجو یافت نشد، آن گاه x را انجام بده؟

x:button1.Enable=true

s.khoshfekran
جمعه 27 فروردین 1389, 17:35 عصر
try
{
if (dr == null)
{
throw new Exception();
}
}
catch
{
button1.Enable=true
}

اَرژنگ
جمعه 27 فروردین 1389, 17:44 عصر
مدیریت استثنا در datagridview

من از این کد برای نمایش اطلاعات در دیتاگرید ویو استفاده می کنم

strCon = "Integrated Security=true;Database=fadak;Server=localhost;";
con = new SqlConnection(strCon);
cmdSelect = new SqlCommand("select [name],tell,address,city1,city2 from tell WHERE city2 like N'%" + textBox1.Text + "%' ", con);
SqlDataReader dr;
dt = new DataTable();
con.Open();
dr = cmdSelect.ExecuteReader();
dt.Load(dr);
con.Close();

this.dataGridView1.DataSource = dt;

با استفاده از دستور try/catch چه طور می شود گفت که اگر رکوردی در جستجو یافت نشد، آن گاه x را انجام بده؟

x:button1.Enable=true


۱. چرا استفاده از try/catch برایه اینکار؟ ایده اینکه اینطوری ازشان استفاده کنید را از جایی دیدید؟
دارید کاملا اشتباه پیش میرید، در مورد استفاده از استثنا مطالعه کنید چونکه این روش نشان میده پایه‌تان را باید قوی کنید.

اَرژنگ
جمعه 27 فروردین 1389, 17:47 عصر
try
{
if (dr == null)
{
thrownewException();
}
}
catch
{
button1.Enable=true
}

با اینکه کدتان سوال را جواب میده، بهش میگفتید که این روش برنامه‌نویسی نیست، فقط برایه اینکه کاری شدنی است، درست نیست که ازش استفاده بشه.

diba_gh
شنبه 28 فروردین 1389, 00:11 صبح
فکر نمی کنم که اشتباه باشه. من برای نمایش search از دیتا گرید ویو استفاده می کنم. در کنار اون سه تا باتن هم هست 1- ویرایش2- حذف3- پرینت
با زدن هر کدوم از این باتن ها اطلاعات داخل دیتاگرید ویو حذف، ویرایش و پرینت می شن.
حالا اگر که سرچ هیچ نتیجه ای نداشته باشه(یعنی دیتاگرید ویو خالی از رکورد باشه) اگر کاربری باتن حذف را بزند خطای دستوری رخ می ده چون داخل دیتاگرید ویو هیچ رکوردی نیست که سلکت شده باشه. به خاطر همین می خواستم که از try برای اشتباهی که ممکنه کاربر انجام بده استفاده کنم.