1

SQL データベースからデータを読み取るために使用される C# の datagridview があります。基準が欠落している場合、ユーザーはデータグリッドを更新してSQLデータベースを更新できるように設定しました。ただし、ログ ファイルを生成し、データグリッドで変更された列またはフィールドをローカル マシンにエクスポートする必要があります。おそらくデータグリッドにイベントハンドラーを追加し、cellvaluechanged = true; の場合について考えてください。エクスポートを実行しますか? どんな助けでも大歓迎です、thx!

(提供するコードはありません。このタイプのメソッドにアプローチする方法がわかりません(まだC#には少しグリーンです))。

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);
4

2 に答える 2

0

わかった:

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

        Clipboard.SetDataObject(dg.GetClipboardContent());
        File.WriteAllText(@"path.txt", Clipboard.GetText(TextDataFormat.Text));
于 2015-10-29T15:09:59.350 に答える
0

変更が行われる前の 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() が返すログに値を書き込みます。それらは行われた変更になります。

于 2015-10-29T13:45:51.023 に答える