C# 添加datagridview';s行到数据表
在下面的代码中,我尝试将datagridview的选定行添加到datagridview的数据源中,如果选定行是新行,但它只添加 “DataGridViewRow{Index=0}”到行的第一列,行的其余部分为空C# 添加datagridview';s行到数据表,c#,C#,在下面的代码中,我尝试将datagridview的选定行添加到datagridview的数据源中,如果选定行是新行,但它只添加 “DataGridViewRow{Index=0}”到行的第一列,行的其余部分为空 if (dataGridView1.SelectedRows[0].IsNewRow) { _dt.Rows.Add(dataGridView1.SelectedRows[0]); dataGridView1.Dat
if (dataGridView1.SelectedRows[0].IsNewRow)
{
_dt.Rows.Add(dataGridView1.SelectedRows[0]);
dataGridView1.DataSource = null;
dataGridView1.DataSource = _dt;
}
DataTable dtUpdated = (DataTable)dataGridView1.DataSource;
dtUpdated.GetChanges();
SqlCommandBuilder cb = new SqlCommandBuilder(_sqlDa);
try
{
_sqlDa.Update(dtUpdated);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
如上所述,Datatable与网格绑定,因此每当您添加新行或更改新行中的任何文本时,新行和更新的值都会自动更新到_dt
如果您仍然感到困惑或遇到与上述相同的问题,请不要将“dataGridView1.SelectedRows[0]”添加到_dt.Rows中,因为SelectedRows是对象“DataGridViewSelectedRowCollection”的集合,因此最好将SelectedRows转换为Datarow,或者您可以使用另一个重载函数“_dt.Rows.add(params object[]值)“如果您已经绑定到数据表,那么当您在gridview中添加新行时,它应该为您添加到_dt中,这样我就不需要第一个If语句了。另外,.SelectedRows成员返回一个DataGridViewRow,看起来您正试图将其添加到DataTable中,而实际上您应该添加一个DataRow。