مشکل در ذخیره تغییرات درون gridview بعد از ترک سطر مورد نظر
سلام
من کدی نوشتم که ابتدا datagridview را با استفاده از datatable پر می کند. بعد از آن کاربر می تواند داده های جدید در datagridview وارد نماید یا داده های قبلی خوانده شده از جدول را تغییر بدهد و همچنین این داده ها مستقیم همان لحظه درون جدول نوشته شود.
کد زیر کدهایی هستند که برای اضافه کردن و تغییر دادن داده ها درون datagridview را نشان می دهد.
private void dgv_moein_RowEnter(object sender, DataGridViewCellEventArgs e)
{
if (dgv_moein.IsCurrentRowDirty == true)
{
dgv_moein.CommitEdit(DataGridViewDataErrorContexts .Commit);
for (int i = 0; i < dgv_moein.Rows[e.RowIndex].Cells.Count; i++)
{
dgv_moein[i, e.RowIndex].Style.BackColor = Color.Yellow;
}
}
}
private void dgv_moein_RowLeave(object sender, DataGridViewCellEventArgs e)
{
int index_kol = dgv_kol.CurrentCell.RowIndex;
int index_moein = dgv_moein.CurrentCell.RowIndex;
if (dgv_moein.IsCurrentRowDirty == true)
{
dgv_moein.CommitEdit(DataGridViewDataErrorContexts .Commit);
com.update_one_record_moein(code_comp, dgv_kol.Rows[index_kol].Cells[0].Value.ToString(), code_atf, dgv_moein.Rows[index_moein].Cells[2].Value.ToString(), dgv_moein.Rows[index_moein].Cells[0].Value.ToString(), dgv_moein.Rows[index_moein].Cells[1].Value.ToString(), "moeindb_" + salmali);
for (int i = 0; i < dgv_moein.Rows[e.RowIndex].Cells.Count; i++)
{
dgv_moein[i, e.RowIndex].Style.BackColor = Color.Empty;
}
}
dgv_moein.Invalidate();
}
مشکل من این است که درون خط
com.update_one_record_moein(code_comp, dgv_kol.Rows[index_kol].Cells[0].Value.ToString(), code_atf, dgv_moein.Rows[index_moein].Cells[2].Value.ToString(), dgv_moein.Rows[index_moein].Cells[0].Value.ToString(), dgv_moein.Rows[index_moein].Cells[1].Value.ToString(), "moeindb_" + salmali);
ابتدا تابع را صدا زده ولی مقادیر وارد شده در سلول های تغییر داده شده را خالی می گذارد. انگار که مقادیر جدید را نمی تواند تشخیص دهد.
لطفا کمکم کنید
نقل قول: مشکل در ذخیره تغییرات درون gridview بعد از ترک سطر مورد نظر
هیچ کس نمی تواند راه حلی برای ذخیره داده سطر بعد از ترک آن را درون gridview بدهد؟ لطفا
نقل قول: مشکل در ذخیره تغییرات درون gridview بعد از ترک سطر مورد نظر
کد متد update_one_record_moein را هم قرار بدید.
نقل قول: مشکل در ذخیره تغییرات درون gridview بعد از ترک سطر مورد نظر
public void update_one_record_moein(string code_co,string id_kol, string code_atf, string id_moein, string code_moein,string name_moein, string dbname)
{
string result="";
string[] paramname = { "@code_comp", "@atf_moein", "@code_atf", "@id_kol", "@id_moein", "@name_moein", "@result" };
string[] paramvalue = {code_co,code_moein,code_atf,id_kol,id_moein,name_ moein,result };
base.Doproc(paramname, paramvalue, "update_insert_moein", dbname);
if (base.erroren != null)
flag = false;
}
مشکل از اینحا نیست من مشکلم اینه که در زمانی که تغییر در کل سطر تمام شد از سطر خارج شد این اطلاعات را اگر در جدول نیست درون جدول درج نماید و اگر هست آن را آپدیت کند درون تابع بالا من توسط یک پروسیجر انجام دادم ان قسمت در خود sql تست کردم درست جواب داده مشکل الان من فقط با gridview است
نقل قول: مشکل در ذخیره تغییرات درون gridview بعد از ترک سطر مورد نظر
متد rowLeave رو برای گرید ویو هندل کن. وقتی یک سطر رو ترک کنی این متد اجرا میشه
نقل قول: مشکل در ذخیره تغییرات درون gridview بعد از ترک سطر مورد نظر
نقل قول:
نوشته شده توسط
hamid_hr
متد rowLeave رو برای گرید ویو هندل کن. وقتی یک سطر رو ترک کنی این متد اجرا میشه
گذاشتم در کدی که اولین بار گذاشتم می تونید مشاهده کنید من با دیباگ کردن می بینم که داخل rowleave میاد تابع آپدیت خودم را هم اجرا می کنه ولی مقدار آخرین سلول آن سطر را تشخیص نمی دهد و null می زنه این مشکل را باید چی کار کنم؟
نقل قول: مشکل در ذخیره تغییرات درون gridview بعد از ترک سطر مورد نظر
ممنون پیداش کردم باید به جای value از EditedFormattedValue استفاده کنم برای گرفتن مقادیر تغییر کرده در سلول ها