PDA

View Full Version : سوال: کنترل عملکرد Delete هنگامی که سطری در دیتا گرید ویو نیست



booysusa
سه شنبه 14 خرداد 1398, 11:56 صبح
با درود خدمت مهندسان عزیز

دکمه Delete من درست عمل میکنه ولی میخوام یه شرطی بهش اضافه کنم که وقتی سطری در دیتاگرید ویو نیست مثلا پیغام بده سطری انتخاب نشده است

الان این کد دکمه Delete من هست و درست کار میکنه ولی وقتی سطری نباشه و دکمه Delete بزنم برنامه خطا میده

کد Delete من
private void btnDelete_Click(object sender, EventArgs e)
{
var result = FarsiMessageBox.MessageBox.Show("هشدار", "آیا میخواید این کاربر را حذف کنید؟", FarsiMessageBox.MessageBox.Buttons.YesNo, FarsiMessageBox.MessageBox.Icons.Warning);
if (result == DialogResult.Yes)
{
if (bindingSource1.List.Count > 0)
{
var contact = bindingSource1.Current as Business.Mojodiatha.Contact;
contact.Delete();
DataRefreshUsers();
}
}
}


http://s3.picofile.com/file/8362595568/013.JPG







و یک خطای دیگه که الان دیدمش
و همچنین یه مشکل دیگه هم هست اینکه میخوام وقتی در فرم تاریخ وارد نکنم برنامه خطا نده و نال رد کنه، میدونم چطور استرینگ رو نال رد کنم ولی DataTime رو نمیدونم چطوری نال بدم
کد Insert من که میخوام تاریخ حساب درونش نال رد بشه به سمت دیتابیسم

public bool InsertHesab()
{
string command = @"INSERT into [Hesab] (Dasteh_Hesab, Mozo_Hesab, Baha_Hesab, Tozihat_Hesab, Contact_ID) " +
"values (@Dasteh_Hesab, @Mozo_Hesab, @Baha_Hesab, @Tozihat_Hesab, @Contact_ID)";

List<SqlParameter> parametersList = new List<SqlParameter>();

var Dasteh_HesabParameter = new SqlParameter("@Dasteh_Hesab", string.IsNullOrEmpty(this.Dasteh_Hesab) ? string.Empty : this.Dasteh_Hesab);
var Mozo_HesabParameter = new SqlParameter("@Mozo_Hesab", string.IsNullOrEmpty(this.Mozo_Hesab) ? string.Empty : this.Mozo_Hesab);
var Baha_HesabParameter = new SqlParameter("@Baha_Hesab", string.IsNullOrEmpty(this.Baha_Hesab) ? string.Empty : this.Baha_Hesab);
var Tarikh_HesabParameter = new SqlParameter("@Tarikh_Hesab", Convert.ToDateTime.IsNullOrEmpty(this.Tarikh_Hesab ) ? string.Empty : this.Tarikh_Hesab);
var Tozihat_HesabParameter = new SqlParameter("@Tozihat_Hesab", string.IsNullOrEmpty(this.Tozihat_Hesab) ? string.Empty : this.Tozihat_Hesab);
var idParameter = new SqlParameter("@Contact_ID", ID);

parametersList.Add(Dasteh_HesabParameter);
parametersList.Add(Mozo_HesabParameter);
parametersList.Add(Baha_HesabParameter);
parametersList.Add(Tarikh_HesabParameter);
parametersList.Add(Tozihat_HesabParameter);
parametersList.Add(idParameter);

var db = new DataAccess.DatabaseManager();
var result = db.ExecuteCommand(command, parametersList);
return result;
}

تصویر کد
http://s3.picofile.com/file/8362596200/016.JPG



مشخصات برنامه
زبان سی شارپ
ویژوال استودیو
sql

jafarpalideh
سه شنبه 14 خرداد 1398, 13:18 عصر
if(dataGridView1.Rows.Count > 0)
{
}

booysusa
سه شنبه 14 خرداد 1398, 19:43 عصر
سپاس مهندس

دوستان کسی برای مشکل دوم پیشنهادی داره؟

booysusa
سه شنبه 14 خرداد 1398, 20:00 عصر
if(dataGridView1.Rows.Count > 0)
{
}


سپاس مهندس
چون از بیندینگ سورس استفاده می کنم از این کد با استفاده از راهنمایی شما استفاده کردم

private void btnDelete_Click(object sender, EventArgs e)
{
if (bindingSource1.List.Count > 0)
{
var result = FarsiMessageBox.MessageBox.Show("هشدار", "آیا میخواید این کاربر را حذف کنید؟", FarsiMessageBox.MessageBox.Buttons.YesNo, FarsiMessageBox.MessageBox.Icons.Warning);
if (result == DialogResult.Yes)
{
var contact = bindingSource1.Current as Business.Mojodiatha.Contact;
contact.Delete();
DataRefreshUsers();
}
}
}

Shadow_net
سه شنبه 14 خرداد 1398, 23:37 عصر
بجای string.Empty از null استفاده کنید ببینید حل میشه؟ چون تا اونجایی که میدونم Empty حکم "" هست و null نیست