我在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/

10-10 05:28