• 1405/04/25

تمرین جلسه 100 تکمیل ویرایش مشخصات :

سلام استاد خسته نباشید 

زمانی که کلید ویرایش رو میزنیم فرم ادیت باز میشه و مشخصات قبلی  در text ها و جود دارد و با تغییر آنها اطلاعات هم در گرید ویو وهم در دیتا بیس تغییر میکند.

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

کد پشت فرم ادیت


public partial class frmEditPerson : Form
{
    Sport_Db_Context _Context = new Sport_Db_Context();
    private int _personId;
    public frmEditPerson(int PersonId)
    {
        _personId = PersonId;
        InitializeComponent();
    }

    private void frmEditPerson_Load(object sender, EventArgs e)
    {
        var person = _Context.People.Single(p => p.Id == _personId);
        if (person.Name == "مدیر")
        {
            FarsiMessageBox.MessageBox.Show("توجه", "امکان ویرایش مدیر وجود ندارد!", FarsiMessageBox.MessageBox.Buttons.OK, FarsiMessageBox.MessageBox.Icons.Warning);
            DialogResult = DialogResult.Cancel;
        }
        else
        {
            txtName.Text = person.Name;
            txtFamily.Text = person.Family;
            txtEmail.Text = person.Email;
            txtMobile.Text = person.Mobile;
            rbDavar.Checked = true;
            if (person.isPlayer)
            {
                rbPlayer.Checked = true;
            }
        }
    }

    private void btnEdit_Click(object sender, EventArgs e)
    {
        var person =_Context.People.Single(p=>p.Id == _personId);
        person.Name = txtName.Text;
        person.Family = txtFamily.Text;
        person.Email = txtEmail.Text;
        person.Mobile = txtMobile.Text;
        person.isPlayer = true;
        if (rbDavar.Checked == true)
        {
            person.isPlayer = false;

        }
        _Context.SaveChanges();
        DialogResult = DialogResult.OK;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        DialogResult = DialogResult.Cancel;
    }
}

کد پشت لیست اصلی 

 private void btnEdit_Click(object sender, EventArgs e)
 {
     if (dataGridView1.CurrentRow!= null)
     {
         string personId = dataGridView1.CurrentRow.Cells[0].Value.ToString();
         int PersonId = Convert.ToInt32(personId);
         frmEditPerson frmEdit = new frmEditPerson(PersonId);
         var result = frmEdit.ShowDialog();
         if (result == DialogResult.OK)
         {
             //cmbFilterTypeUser.SelectedIndex = -1;
             BindGrid(cmbFilterTypeUser.SelectedIndex);

         }
     }
 }

استاد یه قابلیت فیلتر اشخاص رو هم با کمبو باکس قرار دادم و  bindGrid یک ورودی میگرد و براساس آن فیلتر رو انجام میده

کد bindGrid

 void BindGrid(int filterType)
 {
     List<Person> peoples = _context.People.ToList();

     if (filterType == -1)
     {
         peoples = _context.People.ToList();
     }
     else if (filterType == 0)
     {
         peoples = _context.People.Where(p => p.isPlayer == true).ToList();
     }
     else if (filterType == 1)
     {
         peoples = _context.People.Where(p => p.isPlayer == false).ToList();

     }
     var data = peoples;
     dataGridView1.Rows.Clear();

     foreach (var p in data)
     {
         string Type = "";
         if (p.isPlayer)
         {
             Type = "بازیکن";
         }
         else
         {
             Type = "داور";
         }
         dataGridView1.Rows.Add(p.Id,
             p.Name,
             p.Family,
             p.Mobile,
             p.Email,
             Type,
             p.CreateDate/*.ConvertToShamsi()*/);
     }
 }
  • 1405/04/25
  • ساعت 12:49

بسیار عالی