2014-11-12 5 views
0

간단한 응용 프로그램에 대해 databound datagridview가 있습니다. 내장 Visual Studio 데이터베이스를 사용하고 있지만 SQL 쿼리를 사용하여 선호하는대로 데이터를 조작하고 있습니다. DataGrid보기는 데이터 요구 사항이므로 데이터 바인딩 만 수행합니다.C# SQL 쿼리를 실행 한 후 데이터 바인딩 된 컨트롤을 새로 고침/업데이트

datagridview를 실행 한 후에도 자체적으로 업데이트되지 않지만 많은 연구와 테스트를 거친 후에도 아무 것도 작동하지 않습니다. 프로그램을 다시 시작한 후에 만 ​​데이터가 업데이트됩니다.

dgvEmployee.DataSource = null; 
dgvEmployee.Rows.Clear(); 
this.employeeBindingSource.ResetBindings(true); 
dgvEmployee.DataSource = this.employeeBindingSource; 

나는 그것이 데이터베이스가 추가 된 값을 보여줍니다 개방 이후 내 쿼리의 잘못이 아니라는 것을 알고 :

내가 현재 가지고있는 것입니다. 시간 내 주셔서 감사합니다. 이것은이 사이트에서 내 첫 번째 질문이므로 제발 쉽게 가십시오;)

+0

, 당신은 당신의 트랜잭션을 커밋 않았다

그러나 당신이 뭔가를 누락? ;) –

+0

난 그냥 SQL 연결을 만들고, 미리 작성된 쿼리를 보내 실행하고 연결을 닫습니다. – DannyDaMan

+0

좋아요, 처음으로 질문을 들었을 것입니다. 리셋 후에 만 ​​새로운 데이터를 얻는 경우. 테스트를 위해 db에 다시 연결하고 데이터를 다시 가져 와서 업데이트하는지 확인하십시오. –

답변

0

바로 다음에 기본 양식 UI를 새로 고쳐 보았습니까? 이런 식으로 뭔가가 :

dgvEmployee.DataSource = null; 
dgvEmployee.DataSource = this.employeeBindingSource; 
this.Refresh(); 
this.Update(); 
0

은이 코드를 사용하고 그것은 잘 작동하지만 가장 좋은 방법입니다 있는지 확실하지 않습니다 :

List<MyEmployeeData> lstDataSource = query.ToList(); 
dgvEmployee.DataSource = new BindingListView<MyEmployeeData>(lstDataSource); 
dgvEmployee.Refresh(); 

BindingListView class available via NuGet를 사용합니다. 코드에서

이 theese 라인
dgvEmployee.DataSource = null; 
dgvEmployee.Rows.Clear(); 

는 내 의견으로는 필요하지 않습니다.

this.employeeBindingSource.DataSource = tableWithNewData;