2013-08-15 2 views
0

MySQL 데이터베이스에 바인딩 된 DataGridView 개체를 포함하는 폼에 "새로 고침"단추를 제공하고 싶습니다. MySQLCommand, MySQLDataAdapter, MySqlCommandBuilder 및 DataSet 개체를 "새로 작성"하여 계산 된 필드가있는 쿼리에서 채워진 열이없는 화면을 얻었으며 쿼리를 다시 실행하고 바인딩 소스를 DataGridView 개체로 다시로드합니다.DataGridView 새로 고침?

계산 된 열이있는 경우에는 작동하지 않습니다.

분명히 DB에서 DataGridView 개체를 다시로드 할 수있는 방법이 있어야합니다.

나는 6.7.4

단서가 많이 감사 .NET 프레임 워크 4.0, MySQL의 커뮤니티 서버 5.3.33와 MySQL 데이터 커넥터/.NET V와 SharpDevelop C# 5를 사용하고 있습니다! 분명되지 않는 죄송합니다 -


제시와 브라이언,

나는 윈폼을하고있는 중이 야. 나는 방금 해결책을 찾아 냈다. 첫째, 초기로드에서 실행 된 것을 실행하는 것만으로는 충분하지 않습니다. 하나는 MySqlCommand, MySQLDataAdapter, MySqlCommandBuilder 및 DataSet 객체가 "새로"있어야한다는 것을 알았고 폼로드에서와 같이 데이터 가져 오기를 실행합니다. 또한 외모 나 "편집"과 같은 냄새를 맡거나 예외를 throw하는 동안에는 호출 할 수 없습니다. 편집 한 직후에 폼을 새로 고치기를 원했기 때문에 폼에 타이머를 넣고 RowValidated 이벤트가 끝날 때이를 활성화하고 타이머가 ReloadGrid 루틴을 호출하게했습니다. 또한 사용자가 켜져있는 경우 행 822에서 포커스가 행 0과 셀 0으로 이동 했으므로 현재 행과 셀을 점에 저장 한 다음 데이터를 새로 고친 후 포커스를 다시 설정합니다.

+1

첫 번째로로드 한 것과 같은 방법입니다. – OneFineDay

+0

이 도움이됩니다. http://stackoverflow.com/questions/2015327/how-to-refresh-the-datasource-on-a-winforms-datagridview –

답변

0
private void BindGrid(){ 
//retrieve data 

//bind 
DataGridView.DataSource = dataSource; 
DataGridView.DataBind(); 
} 

//call BindGrid() anytime you need to refresh data, for example in a button event click handler 
+0

DataGridView는 Winforms 컨트롤이며 DataBind 메서드가 없습니다 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.aspx – Jesse

+0

글쎄, 왜 그렇게 말하지 않았어? 당신은 항상 당신이 WinForms를 사용하고 있다고 명시해야합니다. 그렇지 않으면 대부분의 시간 동안 WebForms를 사용한다고 가정해야합니다. –

+0

제시와 브라이언, – ChicoryMan

관련 문제