آپدیت کردن datagridview بعد از درج عضو
سلام روزتون به خیر
ببخشید من یه گرید ویو دارم لیست اعضا رو داره که دو تا ستونش با Dataset پر میشه یعنی DataGridVewComboBoxColumn هست .
حالا میخام وقتی کاربر عضوی رو اضافه کرد توی دیالوگ باکس بعد از تایید پنجره ی زیرش که گرید ویو اعضا هست آپدیت بشه اتوماتیک و اون عضو رو نشون بده .
من اول کد زیر رو میذاشتم توی فرم اعضا :
memberTableAdapter.Update(sepehrImamRezaDataSet.Me mber);
boardTableAdapter.Update(sepehrImamRezaDataSet1.Bo ard);
using (var db = new SepehrImamRezaDB())
{
dgMembers.AutoGenerateColumns = false;
var p = db.Members.Select(c => new
{
c.LastName,
c.FirstName,
c.Id,
c.MemberNumber,
c.MemberStartDate,
c.ParentId,
c.BoardId
}).ToList();
dgMembers.DataSource = p;
}
بعدش میرفتم توی اضافه کردن اعضا بعد از ثبت یه دونه نمونه جدید از فرم اعضا میساختم و بعد این تابع رو فراخانی میکردم .
خاستم استاتیک بزارمش نشد . اون آداپتور و دیتاست ارور گرفتن .
ممنون میشم راهنمایی کنید .
نقل قول: آپدیت کردن دیتا گرید ویو بعد از درج عضو
توی پروژتون یا از Linq استفاده کنید یا از ویزارد! شما دارید از دو روش استفاده می کنید
نمیدونم کدوم رو در فرم میخواهید نمایش بدید ولی کافیه memberTableAdapter یا boardTableAdapter را Fill کنید و نیازی به کد Linq پایینیش نیست
نقل قول: آپدیت کردن دیتا گرید ویو بعد از درج عضو
نقل قول:
نوشته شده توسط
danialafshari
توی پروژتون یا از Linq استفاده کنید یا از ویزارد! شما دارید از دو روش استفاده می کنید
نمیدونم کدوم رو در فرم میخواهید نمایش بدید ولی کافیه memberTableAdapter یا boardTableAdapter را Fill کنید و نیازی به کد Linq پایینیش نیست
سلام . من میخام دیتاگرید ویو دوباره فیل یا آپدیت بشه در فرم زیرش . یعنی فرم اصافه کردن عضو جدید دیالوگ باز میشه و یه دونه ثبت میشه ولی دیالوگ بسته نمیشه . میخام کاربر وقتی کاربراشو ثبت کرد و پنجره رو بست توی فرم زیر گرید ویو آپدیت بشه . کد های فیل تنها رو میزارم توی فرم اصافه کردن ولی ارور میگیره . گرید ویو هم پابلیک هست ولی نمیدونم چرا نمیارتش . تابع رو هم پابلیک کردم ولی نمیاره
1 ضمیمه
نقل قول: آپدیت کردن دیتا گرید ویو بعد از درج عضو
برای باز شدن فرم اضافه کردن :
Form2 frm2 = new Form2();
if (frm2.ShowDialog()==DialogResult.OK)
{
this.personsTableAdapter.Fill(this.dbDataSet.Perso ns);
}
در فرم 2 در دکمه ثبت همچین کدی بنویسید:
private void Save_Click(object sender, EventArgs e)
{
personsTableAdapter.Insert(txtFirstName.Text.Trim( ), txtLastName.Text.Trim());
MessageBox.Show("Insert New Record Successfully");
DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
نقل قول: آپدیت کردن دیتا گرید ویو بعد از درج عضو
نقل قول:
نوشته شده توسط
danialafshari
برای باز شدن فرم اضافه کردن :
Form2 frm2 = new Form2();
if (frm2.ShowDialog()==DialogResult.OK)
{
this.personsTableAdapter.Fill(this.dbDataSet.Perso ns);
}
در فرم 2 در دکمه ثبت همچین کدی بنویسید:
private void Save_Click(object sender, EventArgs e)
{
personsTableAdapter.Insert(txtFirstName.Text.Trim( ), txtLastName.Text.Trim());
MessageBox.Show("Insert New Record Successfully");
DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
ممنون از جواب شما .جواب داد ولی نمیدونم چرا منطقش برعکسه . یعنی وقتی درج میکنم میگه با موفقیت اضافه شد و پنجره رو نمیبنده و باید خودم دستی ببیندمش و باید دکمه ی انصراف رو دو بار بزنم تا آپدیت بشه . در صورتی که فقط کد دکمه ی انصراف DialogResult=DialogResult.OK اینه . واقعا گیج شدم دیگه
کد مربوط به درج اینه :
else if (chek_MemberNumer(MemberNumber) == false)
{
db.sp_AddMember(BoradId, FiscalYear, MemberNumber, String.IsNullOrEmpty(txtFirstName.Text) ? null : Convert.ToString(txtFirstName.Text), string.IsNullOrEmpty(textLastName.Text) ? null : Convert.ToString(textLastName.Text), comboBoxGender.Text, string.IsNullOrEmpty(txtKodeMeli.Text) ? null : Convert.ToString(txtKodeMeli.Text), string.IsNullOrEmpty(txtFatherName.Text) ? null : Convert.ToString(txtFatherName.Text), txtBirthDay.MaskFull ? Convert.ToString(txtBirthDay.Text) : null, string.IsNullOrEmpty(txtMobile.Text) ? null : Convert.ToString(txtMobile.Text), string.IsNullOrEmpty(txtEmail.Text) ? null : Convert.ToString(txtEmail.Text), ParentId, string.IsNullOrEmpty(txtAddress.Text) ? null : Convert.ToString(txtAddress.Text), string.IsNullOrEmpty(txtPhone.Text) ? null : Convert.ToString(txtPhone.Text), txtStartDate.Text, null);
FMessegeBox.FarsiMessegeBox.Show("با موفقیت اضافه شد", "پیغام", FMessegeBox.FMessegeBoxButtons.Ok, FMessegeBox.FMessegeBoxIcons.Information);
DialogResult = DialogResult.OK;
this.Close();
}
برای دکمه انصراف هم گفتم DialogResult=DialogResult.OK .. برش داشتم یه بار ولی باز نشد .
حالت دیباگ هم رفتم دیدم میره ایونت Add_Member (اضافه کردن عضو) رو اجرا میکنه و باعث میشه پنجره نبنده و دوباره نمایش داده بشه در صورتی که من اصلا و اصلا کدم ربطی به اون ایونت نداره!!!!!
نقل قول: آپدیت کردن دیتا گرید ویو بعد از درج عضو
نقل قول:
نوشته شده توسط
barbimusic
ممنون از جواب شما .جواب داد ولی نمیدونم چرا منطقش برعکسه . یعنی وقتی درج میکنم میگه با موفقیت اضافه شد و پنجره رو نمیبنده و باید خودم دستی ببیندمش و باید دکمه ی انصراف رو دو بار بزنم تا آپدیت بشه . در صورتی که فقط کد دکمه ی انصراف DialogResult=DialogResult.OK اینه . واقعا گیج شدم دیگه
کد مربوط به درج اینه :
else if (chek_MemberNumer(MemberNumber) == false)
{
db.sp_AddMember(BoradId, FiscalYear, MemberNumber, String.IsNullOrEmpty(txtFirstName.Text) ? null : Convert.ToString(txtFirstName.Text), string.IsNullOrEmpty(textLastName.Text) ? null : Convert.ToString(textLastName.Text), comboBoxGender.Text, string.IsNullOrEmpty(txtKodeMeli.Text) ? null : Convert.ToString(txtKodeMeli.Text), string.IsNullOrEmpty(txtFatherName.Text) ? null : Convert.ToString(txtFatherName.Text), txtBirthDay.MaskFull ? Convert.ToString(txtBirthDay.Text) : null, string.IsNullOrEmpty(txtMobile.Text) ? null : Convert.ToString(txtMobile.Text), string.IsNullOrEmpty(txtEmail.Text) ? null : Convert.ToString(txtEmail.Text), ParentId, string.IsNullOrEmpty(txtAddress.Text) ? null : Convert.ToString(txtAddress.Text), string.IsNullOrEmpty(txtPhone.Text) ? null : Convert.ToString(txtPhone.Text), txtStartDate.Text, null);
FMessegeBox.FarsiMessegeBox.Show("با موفقیت اضافه شد", "پیغام", FMessegeBox.FMessegeBoxButtons.Ok, FMessegeBox.FMessegeBoxIcons.Information);
DialogResult = DialogResult.OK;
this.Close();
}
برای دکمه انصراف هم گفتم DialogResult=DialogResult.OK .. برش داشتم یه بار ولی باز نشد .
حالت دیباگ هم رفتم دیدم میره ایونت Add_Member (اضافه کردن عضو) رو اجرا میکنه و باعث میشه پنجره نبنده و دوباره نمایش داده بشه در صورتی که من اصلا و اصلا کدم ربطی به اون ایونت نداره!!!!!
سورسی که من گذاشتم صرفاً یک مثال بود که 2 نکته داشت
1- نیازی نیست از دو روش رو همزمان استفاده کنید
2- کافیه بعد از Insert یا Update متد Fill رو فراخوانی کنید
نقل قول: آپدیت کردن دیتا گرید ویو بعد از درج عضو
نقل قول:
نوشته شده توسط
danialafshari
سورسی که من گذاشتم صرفاً یک مثال بود که 2 نکته داشت
1- نیازی نیست از دو روش رو همزمان استفاده کنید
2- کافیه بعد از Insert یا Update متد Fill رو فراخوانی کنید
ممنونم . روش شما درست است . منطق کد من مورد داره . نمیدونم کجاش ایراد داره . بار اول پنجره رو نمیبنده . بار دوم میبنده .
میشه کد رو ببینیدن کجاش مورد داره ؟
if (f.ShowDialog() == DialogResult.OK)
{
Refresh_DataGrid_Members();
}
ممنونم
اصلا دیباگ کردم نمدونم چرا میره قسمت لود فرم رو اول میاره بعد میره کلیک اونو هندل میکنه !!!!!!!!!!
نقل قول: آپدیت کردن دیتا گرید ویو بعد از درج عضو
متوجه شدم . ببخشید واقعا . وقت شما رو هم گرفتم . من قبل از کد بالا f.showdialog() رو هم گذاشته بودم .!!:گریه: