Question

I need to get 2-way binding DB to DataGrid, so I'm using this method:

    private void SetTable(string tableName)
    {
        var dataGridView1 = new DataGridView { DataSource = GetData(tableName), Dock = DockStyle.Fill };
        groupBox1.Text = tableName;
        groupBox1.Controls.Clear();
        groupBox1.Controls.Add(dataGridView1);
    }

    private static DataTable GetData(string tableName)
    {
        using (var connection = new SqlConnection(ConnectionString))
        {
            var command = new SqlCommand(string.Format("SELECT * FROM {0}", tableName), connection);

            connection.Open();
            var adapter = new SqlDataAdapter(command);
            var result = new DataTable();
            adapter.Fill(result);
            return result;
        }
    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        SetTable(comboBox1.Text);
    }

so I have one-way binding. So I'd like to do some changes and after send them back to db. So question is simple: should I do it manually or analogue of L2S SubmitChanges() exists? I should use SQL requests only. No EF, No L2S and so on.

So I'd like to get some modified/added/removed rows from DataGrid and update them in database. I can do it manually, using 2 lists and after make an except query, but I'd like to get it automatically.

Was it helpful?

Solution

You can determine what has changed by calling GetChanges() and/or update directly by using a TableAdapter.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top