更新 datagridview 时导出日志文件
Posted
技术标签:
【中文标题】更新 datagridview 时导出日志文件【英文标题】:Exporting log file when datagridview has been updated 【发布时间】:2015-10-29 13:09:16 【问题描述】:我有一个 C# 中的 datagridview,用于从 SQL 数据库中读取数据。我已经设置好了,所以当缺少标准时,用户可以更新数据网格,然后更新我的 SQL 数据库。但是,我想要/需要生成一个日志文件并将其与数据网格中更改的列或字段一起导出到本地计算机。有一些想法可能会在数据网格上添加一个事件处理程序,并且当 cellvaluechanged = true;运行出口?感谢任何帮助,谢谢!
(没有代码可提供,不知道如何处理这种类型的方法(对 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);
【问题讨论】:
您是否使用 DataTable 作为网格的数据? 没错,我是 【参考方案1】:你可以抓取改变之前的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() 返回的日志。这些就是所做的更改。
【讨论】:
【参考方案2】:我明白了:
dg.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithAutoHeaderText;
dg.SelectAll();
Clipboard.SetDataObject(dg.GetClipboardContent());
File.WriteAllText(@"path.txt", Clipboard.GetText(TextDataFormat.Text));
【讨论】:
以上是关于更新 datagridview 时导出日志文件的主要内容,如果未能解决你的问题,请参考以下文章