Экспорт файла журнала при обновлении datagridview

У меня есть datagridview на С#, который используется для чтения данных из базы данных SQL. Я настроил его, поэтому, когда отсутствуют критерии, пользователь может обновить сетку данных, которая затем обновит мою базу данных SQL. Однако я хочу/нужно создать и экспортировать файл журнала с указанием столбца или поля, которое было изменено в сетке данных на локальный компьютер. У вас есть идея, возможно, добавить обработчик событий в сетку данных и когда cellvaluechanged = true; запустить экспорт? Любая помощь приветствуется, спасибо!

(Нет кода для предоставления, не уверен, как подойти к этому типу метода (все еще немного зеленый для С#)).

sqldataAdapter da;
sqlCommandBuilder scb;
DataTable dt;
SQLConnection con = (my connection);
private void btnEnter_Click(object sender, EventArgs e)
    {
        try
        {
         //Searches database for what is plugged into txtbox.   
            da = new SqlDataAdapter("SELECT * FROM [sqltable] WHERE [columnA]='" + txtData.Text + "' OR [ColumnB]='" + txtData.Text + "' OR [ColumnC]='" + txtData.Text + "' OR [ColumnD]='" + txtData.Text + "'", con);
            ds = new DataSet();
            dt = new DataTable();
            ds.Clear();
            da.Fill(dt);
            dg.DataSource = dt;

            con.Open();
            con.Close();
private void btnUpdate_Click(object sender, EventArgs e)
    {
        //when button is clicked, the SQL Database gets updated with the data that is plugged into the datagridview.
        scb = new SqlCommandBuilder(da);
        da.Update(dt);

person DHB    schedule 29.10.2015    source источник
comment
Используете ли вы DataTable для данных для сетки?   -  person Dylan    schedule 29.10.2015
comment
Это правильно, я   -  person DHB    schedule 29.10.2015


Ответы (2)


Вы можете получить DataTable до внесения изменений и dataTable после внесения новых изменений, а затем сделать это.

A.Merge(B); // this will add to A any records that are in B but not A
return A.GetChanges(); // returns records originally only in B

Затем просмотрите и запишите значения в журнал, который возвращает A.Getchanges(). Это будут внесенные изменения.

person Dylan    schedule 29.10.2015

Я понял:

dg.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
        dg.SelectAll();

        Clipboard.SetDataObject(dg.GetClipboardContent());
        File.WriteAllText(@"path.txt", Clipboard.GetText(TextDataFormat.Text));
person DHB    schedule 29.10.2015