Question

I just learn linq and trying to make insert update delete with linq and ado.net data entity model. Now I'm have some problem, when I'm insert some data, the datagridview not show that, I must close the program and run it again to show the latest data that I'm entry. Here the code :

namespace TesDB
{
    public partial class Form1 : Form
    {
        private Database1Entities de = new Database1Entities();
        int index;

    public Form1()
    {
        InitializeComponent();

        var query = from x in de.MsEmployees
                    select x;

        dataGridView1.DataSource = query;
        dataGridView1.Refresh();
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    public void loadtext()
    {
        textBox1.Text = dataGridView1.Rows[index].Cells[0].Value.ToString();
        textBox2.Text = dataGridView1.Rows[index].Cells[1].Value.ToString();
        textBox3.Text = dataGridView1.Rows[index].Cells[2].Value.ToString();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        string EmployeeID = dataGridView1.Rows[index].Cells[0].Value.ToString();

        var employee = (from x in de.MsEmployees
                        where x.EmployeeID == EmployeeID
                        select x).First();
        employee.EmployeeID  = textBox1.Text;
        employee.EmployeeName = textBox2.Text;
        employee.Salary = int.Parse(textBox3.Text);
        de.SaveChanges();
        Refresh();

    }



    private void button3_Click(object sender, EventArgs e)
    {
        string EmployeeID = dataGridView1.Rows[index].Cells[0].Value.ToString();
       // int id1 = int.Parse(EmployeeID);

        var Employee = (from x in de.MsEmployees
                        where x.EmployeeID == EmployeeID
                        select x).First();
        de.MsEmployees.DeleteObject(Employee);
        de.SaveChanges();
        Refresh();

    }

    private void button1_Click(object sender, EventArgs e)
    {
        string employeeID = dataGridView1.Rows[index].Cells[0].Value.ToString();

        var employee = (from x in de.MsEmployees
                        where x.EmployeeID == employeeID
                        select x.EmployeeID).First();

        MsEmployee me = new MsEmployee();
        me.EmployeeID = textBox1.Text;
        me.EmployeeName = textBox2.Text;
        me.Salary = int.Parse(textBox3.Text);
        de.AddToMsEmployees(me);
        de.SaveChanges();
       this.Refresh();
    }

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {


        index = e.RowIndex;
        loadtext();

    }

}

}

`

I'm using refresh() that work for Update and Delete but it not work for insert does anyone know how to refresh that table when I'm done insert?

Was it helpful?

Solution

make a method of refresh() and paste ur Query inside and call it behind the button

      public void refresh()
      {
           //Paste ur Query here and call it behind the button_click Event
      }
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top