PDA

View Full Version : ویرایش با دیتا گرید



mina1363
یک شنبه 07 تیر 1388, 17:35 عصر
سلام
یه گرید دارم که وقتی روی یک سطر آن کلیک میکنم اطلاعات موجود روی ستونها را روی textbox مربوط به آن نمایش میده و بعد وقتی کاربر تغییرات مورد نظرش را اعمال کرد با دکمه ویرایشی که یکی از ستونهای خود گریدم هست آن تغییرات را در دیتا بیس اعمال میکنه ولی یه سری مشکل ایجاد شده :

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[4].Index == e.ColumnIndex)
{
br.Update(moecd.Text, moename.Text, moedtl.Text, kolcd.Text);
MessageBox.Show("عمل ويرايش با موفقيت انجام شد");
}

این مربوط به ویرایش است که update متدی است که در یک کلاس جدا نوشته ام و با آن مشکل ندارم و

private void dataGridView1_Click(object sender, EventArgs e)
{
moecd.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString();
moename.Text = dataGridView1.CurrentRow.Cells[1].Value.ToString();
moedtl.Text = dataGridView1.CurrentRow.Cells[2].Value.ToString();
kolcd.Text = dataGridView1.CurrentRow.Cells[3].Value.ToString();
}
این هم کد مربوط به نمایش اطلاعات روی textbox ها است ولی این 2 تا event به جای هم اجرا میشند در نتیجه پس از اینکه کاربر تغییراتش را اعمال کرد و دکمه ویرایش را زد چون ابتدا event Click را اجرا میکنه دوباره همان اطلاعات گرید را روی اطلاعات جدید کاربر روی textbox ها میریزه در نتیجه در دیتا بیس تغییری اعمال نمیشه حالا باید چکارکنم که تغییرات در دیتا بیس ذخیره بشه؟

NewFoxStudent
یک شنبه 07 تیر 1388, 19:11 عصر
به جای رویداد dataGridView_Click برای نمایش مقادیر توی تکست باکسها از رویداد RowEnter استفاده کنید
یعنی کدهایی رو که برای نمایش مقادیر تو تکست باکسها تو روییداد کلیک گرید نوشتید تو رویداد RowEnter بنویسید

mina1363
سه شنبه 09 تیر 1388, 11:39 صبح
من در رویداد rowenter آن را نوشتم و اجرا کردم ولی موقع اجرا زمانی که حتی هنوز فرمم load نشده exception زیر handle میشود
Object reference not set to an instance of an object واین روی

moecd.Text = dataGridView1.CurrentRow.Cells[0].Value.ToString(); میایسته حالا باید چکارکنم؟