PDA

View Full Version : چرا این دکمه رو میزنم فرم بسته میشه ؟؟؟؟؟؟ فقط یه دستور حذف از دیتابیس نوشتم!!!



aftabeshargh
سه شنبه 16 اسفند 1390, 11:00 صبح
سلام
نمیدونم چرا با زدن این دکمه که دستورات زیر توش هست ، فرمم بسته میشه آخه !!!!

If dgv.RowCount = 0 Then
Exit Sub
End If

If MsgBox("با حذف رکورد مورد نظر موافق هستید ؟", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "توجه") = MsgBoxResult.Yes Then
ExecuteQuery("delete tbl_sh where id=" + dgv.CurrentRow.Cells(0).Value.ToString)
End If
Dim dt As New DataTable
dt = SelectQuery("select id as [ردیف],mp as [مبلغ پرداختی],mb as [مبلغ بدهی],ta as [تاریخ]from tbl_sh where ido=" + lblido.Text)

dgv.DataSource = dt
dgv.Columns(0).Visible = False

arash020
سه شنبه 16 اسفند 1390, 11:20 صبح
حالا که شده ...!!!


دلیلش توی کد نیست

reza69
سه شنبه 16 اسفند 1390, 11:33 صبح
ببین به غیر از اینا کدی نداری؟دقت کن.
اگه نداری احتمالا باید دلیلش این کد باشه.
If dgv.RowCount = 0 Then
Exit Sub
End If
داخل dgv رکورد داری یا نه؟

فرید نجفلو
سه شنبه 16 اسفند 1390, 11:36 صبح
احتمالات زیر رو بررسی کنید:
1-بررسی کنید خاصیت های َAcceptButton یا CancelButton فرم با این دکمه ست نشده باشه
2-اگه کد شما داخل یک Try...Catch نباشه ممکنه خطایی اتفاق می افته که مسیر رو به یک کد خارج از فرم (صدا زننده فرم) هدایت میکنه که در این صورت این فرم باید بسته می شه

aftabeshargh
سه شنبه 16 اسفند 1390, 13:10 عصر
دلیلش
If dgv.RowCount = 0 Then
Exit Sub
End If
نیست ، چون اگه ررکورد نباشه کاری انجام نمیده ، اما با وجود رکورد ، رکورد رو حذف میکنه و فرم رو میبنده !!!!!!!!!!!!!!!! accept , cancel فرم با این دکمه ست نیست .

aftabeshargh
سه شنبه 16 اسفند 1390, 13:17 عصر
فهمیدم دوستان
ExecuteQuery("delete tbl_sh where id=" + dgv.CurrentRow.Cells(0).Value.ToString)
چون تو جدول فرمم ستون اول رو قبل visible=false کرده بودم حالا تو دستور بالا cell=0 رو پیدا نمیکرده !!! خوب چکار کنمش !!! نمیخوام visible=true باشه تو این جدول فرمم یعنی ستون اول نمیخوام کاربر ببینه

فرید نجفلو
سه شنبه 16 اسفند 1390, 14:02 عصر
شما اگه ستون هاتون رو به صورت دستی ایجاد می کنید می تونید از نام یا ایندکس اون ستون به جای 0 استفاده کنید
اگه ستون هاتون به صورت خودکار ایجاد می شن به جای 0 بنویسید "id"