2016-08-10 11 views
-2

저는 Datagrid에서 값을 가져 와서 텍스트 필드에 저장하고 제출 버튼을 통해 데이터베이스에 값을 덤프했습니다. 또한 해당 버튼에 대한 새로 고침을 위해 동일한 테이블을 다시 호출합니다.하지만 여기에 있습니다. 예외가 발생했습니다 ...Datagrid, 인덱스가 범위를 벗어났습니다

색인이 범위를 벗어났습니다. 음수가 아니고 컬렉션의 크기보다 작아야합니다. 매개 변수 이름 : 색인

또 다른 문제점은 추가 행을 생성한다는 것입니다. 왜 그런 일이 일어날 지 모르겠다. 그리고 그 여분의 행을 클릭하면, 내 프로그램은 또 다른 예외를 보여줍니다.

'MS.Internal.NamedObject'형식의 개체를 'System.Data.DataRowView'형식으로 캐스팅 할 수 없습니다.

DataSet ds = new DataSet(); 
MySqlDataAdapter da = new MySqlDataAdapter(sql, con); 
da.Fill(ds); 
datagridAccepted.ItemsSource = ds.Tables[0].DefaultView; 

DataRowView row = (DataRowView)datagridDocSchedule.SelectedItems[0]; 
textBoxId.Text = row["id"].ToString(); 
textBoxName.Text = row["name"].ToString(); 
textBoxSpecialistIn.Text = row["specialist_in"].ToString(); 

답변

1

그것은 당신의 ds.Tables 또는 datagridDocSchedule.SelectedItems가 비어 있다는 것을 의미한다. 코드를 디버그하고 비어있는 코드를 확인하십시오.

관련 문제