다음 코드에서는 선택한 행의 새 행이 있지만 "데이터 격자 뷰 {인덱스 = 0}"만 첫 번째 열에 추가하면 datagridview의 데이터 소스에 선택된 행을 추가하려고합니다. 행의 행과 나머지 댄 그리드와 결합되어 데이터 테이블 위에서 언급 한 바와 같이datagridview의 행을 데이터 테이블에 추가
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에 이미 바인딩 한 경우 그리드 뷰에 새 행을 추가 할 때 추가해야합니다 당신을 위해 _dt를 써서 첫 번째 문장이 나에게 불필요한 것처럼 보입니다. 또한 .SelectedRows 멤버는 DataGridViewRow를 반환하며 DataRow를 추가해야 할 때 DataTable에 추가하려고하는 것처럼 보입니다. – Dan