PDA

View Full Version : سوال: خواندن دیتاگرید موجود در یک فرم در فرم دیگر



Diba.....
چهارشنبه 16 شهریور 1390, 15:36 عصر
سلام

من در فرم اصلیم یک گرید دارم که می خوام با انتخاب یک رکورد ، اون رو پاک کنم.................
فقط می خوام قبل از اینکه اون رکورد حذف بشه با زدن دکمه ی حذف فرم جدیدی باز بشه و بپرسه که آیا برای حذف مطمئنید؟سپس با کلیک بر روی دکمه (بله) دستور حذف اجرا بشه اما error می ده که:
:اشتباه:

the name 'Gride' does not exist in current context


اینم کدم:
LastTestDataContext bank = new LastTestDataContext();
for (int i=0;i<Gride.RowCount;i++)
if (Gride.Rows[i].Selected)
{
MessageBox.Show("آيا مايل به حذف هستيد؟");
var stu=bank.Students.Where(n => n.SrudentId==int.Parse(Gride.Rows[i].Cells["studentid"].Value.ToString())).FirstOrDefault();
bank.Students.DeleteOnSubmit(stu);
Gride.Rows.RemoveAt(i);
Gride.Refresh();
}
bank.SubmitChanges();
MessageBox.Show("يک رکورد حذف شد");

Diba.....
چهارشنبه 16 شهریور 1390, 16:19 عصر
لطفا اگر کسی بلده راهنماییم کنه ...... ...... ...... ......

bozhmehrani
پنج شنبه 17 شهریور 1390, 06:41 صبح
سلام
کارت اشتباهه
چرا یه حلقه گذاشتی واسه هر ردیف چک کنه که انتخاب شده یا نه؟
باید بری تو رویداد cellclick گرید بنویسی حلقه هم نمی خواد اینطوریه که
سطری که کاربر انتخاب میکنه میشه e.rowindexکه میتونی با استفاده از این اون اطلاعات اون سطرو بخونی و
سپس بایه دستور delete از بانک حذف کنی و سپس یه دستور select اجرا میکنی که گریدت به روز بشه

mmd2009
پنج شنبه 17 شهریور 1390, 09:03 صبح
با سلام

نیازی به استفاده از هیچ رویدادی هم نیست کافیه به این صورت مقدار سلولی که میخوایید بر اساس اون داده رو حذف کنید رو بدست بیارید :

dataGridView1.CurrentRow.Cells[1].Value.ToString()

الان مشکل حل میشه و نیازی به حلقه هم نیست.

ولی متن خطای شما چیز دیگه ای هست و این متن نشون میده که شما اصلا گرید ویوی با نام Gride ندارید. یک بار دیگه چک کنید کدتون رو.

موفق باشید

vesall
پنج شنبه 17 شهریور 1390, 09:43 صبح
سلام.

من متوجه نشدم شما چکار کردین ولی من برای اینکه اول سوال کنه بعد دیتا سطر مورد نظر رو حذف کنه این کار رو کردم:

if (MessageBox.Show("آیا مطمئن به حذف این کارمند هستید ؟؟؟؟", "سوال(حذف)؟", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{

// Tashvigh
cm1.CommandText = ("delete from tashvigh where shestekhdami=@shestekhdami");
cm1.Parameters.Clear();
cm1.Parameters.AddWithValue("@shestekhdami", txtdelid.Text);
da1.DeleteCommand = cm1;
cn1.Open();
cm1.ExecuteNonQuery();
ds1.Clear();
da1.Fill(ds1, "tashvigh");
dvtashvigh = new DataView(ds1.Tables["tashvigh"]);
cn1.Close();

// Works
cm2.CommandText = ("delete from works where shestekhdami=@shestekhdami");
cm2.Parameters.Clear();
cm2.Parameters.AddWithValue("@shestekhdami", txtdelid.Text);
da2.DeleteCommand = cm2;
cn2.Open();
cm2.ExecuteNonQuery();
ds2.Clear();
da2.Fill(ds2, "works");
dvwork = new DataView(ds2.Tables["works"]);
cn2.Close();


groupBox3.Visible = false;
txtdelid.Text = "";
textBox1.Text = "";
txtdelid.Focus();
this.Close();
}
else
{
groupBox3.Visible = false;
txtdelid.Text = "";
textBox1.Text = "";
txtdelid.Focus();
}

cmm_cmm_2007@yahoo
پنج شنبه 17 شهریور 1390, 20:24 عصر
سوال ساده ای است.خب اول باید ببینیم کدام رکورد انتخاب شده در bindingsource
شماره سطر را که داریم میگیم پاک کند.
خیلی ساده است.اگر خاستید به من ایمیل بزنید میگم.