我在DataGridView
中的C# WinForms
中绑定了text file
,如下所示
onPageLoad
DataTable table = new DataTable();
table.Columns.Add(Column0);
table.Columns.Add(Column1);
table.Columns.Add(Column2);
table.Columns.Add(Column3);
using (StreamReader sr = new StreamReader(Environment.CurrentDirectory + @"/data.txt"))
{
while (!sr.EndOfStream)
{
string[] parts = sr.ReadLine().Split(',');
DeviceIDCounter = DeviceIDCounter + 1;
table.Rows.Add(DeviceIDCounter, parts[0], parts[1], parts[2]);
}
}
dataSet = new DataSet();
dataSet.Clear();
dataSet.Tables.Add(table);
dataGridView1.DataSource = dataSet.Tables[0];
dataGridView1.AllowUserToAddRows = false;
dataGridView1.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
dataGridView1.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
DeviceIDCounter = 0;
现在,在更新
dataGridView1
中的单行时,它总是返回所有行更新行后的onButtonClick
DataTable dtRecordsUpdated = dataSet.Tables[0].GetChanges(); //always returning total rows
if (dtRecordsUpdated != null && dtRecordsUpdated.Rows.Count > 0)
{
Cursor.Current = Cursors.WaitCursor;
Cursor.Current = Cursors.Default;
}
else
{}
另一方面,从
DataGridView
绑定SQLServer
的其他函数正在按预期工作。谢谢
最佳答案
进行如下更改后,您需要更新到DGV的数据源:
((System.Data.DataTable)this.dataGridView1.DataSource).AcceptChanges();
关于c# - C#DataSet.Tables [0] .GetChanges();总是返回所有行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32134853/