2013-09-02 2 views
0

내 응용 프로그램에는 select 명령을 사용하여 내 데이터 테이블을 채울 수있는이 데이터 테이블은 datagridview에 대한 소스 바인딩입니다.데이터 테이블을 다시 mysql로 ​​업데이트

달성하고자하는 것은 다음과 같습니다. 두 번째 "업데이트"버튼을 사용하여 DataGrid 뷰 (행 편집, 행 삭제)의 변경 사항을 다시 작성하고 MySqlCommandBuilder에 대한 정보를 찾았지만 만들 수 없습니다. 그것은 작동합니다 MySqlCommandBuilder

이 작업은 어떻게하면 가능합니까? 사용자가 데이터 테이블을 업데이트하고 다시 mysql에 쓸 수있게하려면 어떻게해야합니까?

답변

2

당신은 지금, 당신이 행을 추가 또는 삭제는 데이터 그리드의 수정 변경이

string query = "SELECT * FROM yourTableName"; 
MySqlDataAdapter adapter = new MySqlDataAdapter(query, connString); 
MySqlCommandBuilder builder = new MySqlCommandBuilder(adapter); 
DataTable dt = new DataTable(); 
adapter.Fill(dt); 
BindingSource bs = new BindingSource(); 
bs.DataSource = dt; 
dgview.DataSource = bs; 

처럼 될 수있는 코드로 MySqlDataAdapter라는 개체의 인스턴스를 사용하고 처음에 데이터 테이블 채운, 모든 변경 사항은 기본 데이터 소스 (데이터 테이블)에 반영됩니다. 데이터베이스에서 레코드를 업데이트하려면 해당 MySqlDataAdapter를 주위에 (양식의 전역 변수로) 유지하고 Update 메소드를 호출해야합니다 필요한 경우 어댑터 인스턴스

BindingSource bs = dgview.DataSource As BindingSource; 
adapter.Update(bs.DataSource as DataTable); 

(단 하나의 테이블을 포함 MySqlCommandBuilder은 선택 쿼리에서 작동 명심하십시오 - 아니 허용 조인) 데이터베이스를 업데이트 할 MySqlCommandBuilder에 의해 생성 된 MySqlCommand 클래스의 인스턴스를 사용하여이 호출

+0

가 대단히 감사합니다 실제로 실종 된 업데이트 버튼의 MySqlDataAdapter였습니다. – PandaNL

관련 문제