2013-01-09 7 views
2

DataGridview가 있는데, EditMode : EditOnKeystroke로 설정되어 있습니다. 그리드의 데이터를 편집하고 업데이트 버튼을 클릭하면이 그리드의 데이터 소스 인 데이터베이스 테이블에 변경 사항이 반영되지 않습니다. dataGridView를로드하고 업데이트하는 코드는 아래와 같습니다.DatagridView 변경 사항 데이터베이스에 반영되지 않음

private void Form_Load(object sender, EventArgs e) 
{     
     // TODO: This line of code loads data into the 'pFSDataSet5.Farms' table. You can move, or remove it, as needed. 
     this.farmsTableAdapter.Fill(this.pFSDataSet5.Farms);  
} 

private void update_Click(object sender, EventArgs e) 
{ 
     //da.Update((DataTable)farmsTableAdapter); 
     int s=this.farmsTableAdapter.Update(this.pFSDataSet5.Farms); 
     Console.Write(s); 

     MessageBox.Show("Successfully Updated"); 
} 

내가 놓친 무엇, 데이터 변경 '농장'라는 테이블을 dB로 전달 될하지?

+1

당신은/dbgrid.databind() 같은 바인딩 방법이 누락되었습니다; – Sakthivel

답변

0

데이터 표와 데이터 집합간에 바인딩이 없기 때문에 변경 내용이 데이터베이스에 전파되지 않습니다.

양식로드시 데이터 세트 표와 함께 setting the grid.DataSource을 시도하십시오.

2

변경 사항은 데이터베이스에 반영되지 않으므로 DataGridview를 닫지 않아도됩니다. 이 두 줄을 사용하여 DataGridview 편집을 닫습니다.

yourdatagridview.EndEdit(); 
((DataRowView)yourdatagridview.CurrentRow.DataBoundItem).EndEdit(); 

그런 다음 tableadapter 업데이트를 사용할 수 있습니다. :)

관련 문제