2011-09-29 6 views
0

요즘은 Windows Forms를 사용하여 C# .NET에서 프로젝트 작업을 시작했으며 Windows Forms를 마지막으로 사용하여 꽤 오래되었습니다. 녹슨.MySQL 및 C# .NET DataGridView, 업데이트, 삽입 및 삭제

먼저 MS Access 나 로컬에 저장된 데이터베이스 파일을 사용하는 경우 databindings에 대한 GUI 마법사 지원이없는 Visual C# 2010 Express를 사용해야한다는 것을 지적해야합니다. MySQL 데이터베이스를 만들고 DataGridView로 멋지게 플레이하십시오.

내 문제는 업데이트 및 삭제 방법을 제대로 파악할 수 없다는 사실에서 기인합니다. 내가 찾은 대부분의 온라인 소스는 데이터 바인딩 마법사를 실행하는 것, Visual C# 2010 Express를 실행하고 있기 때문에 할 수없는 것입니다.

자,하지만 내가 사용하려고 할 때 MySqlDataAdapter.Update(<DataTable>) 아무 일도 일어나지 않는다 (A MySqlDataAdapter하는 BindingSourceDataTable를 사용하여) 모든 주요 문제없이 데이터베이스에서 데이터를 선택 할 수있었습니다.

내가해야 할 일은 정상적으로 "마법사 만 사용"으로 손을 버려야한다고 가정합니다. 그렇다면 누구나 업데이트, 삽입 및 삭제를 수행 할 수있는 간단한 예제가 있습니까? 저장 프로 시저의 유무에 관계없이 두 가지 방법 모두 괜찮습니다 (최종 프로그램에서 저장된 procs를 사용하게 될 것입니다).

+0

이러한 링크는 도움이 될 수 있습니다 http://stackoverflow.com/questions/1518946/how-to-insert-delete-select-update-values-in-datagridview-in-c-using-mysql http://stackoverflow.com/questions/4663632/c-insert-and-update-content-to-datagridview-do-not-work http://stackoverflow.com/questions/832874/sqldataadapter-update-doesnt-work –

+0

둘 다 살펴본 후 몇 시간 동안 코드를 작동 시키려고 시도했지만 그렇지 않습니다. 성가신 부분은 예외가 없다는 것입니다. 아무 것도하지 않습니다. 그래서 예, 나는'UpdateCommand'를 설정하려고 시도했고'EndEdit()'를 호출 해 보았습니다. 그리고 두 가지 모두 시도했지만, 작동하지 않습니다. 하지만 선택은 잘 작동하지만 ... – mludd

답변

2

VS 도구 상자에서 DragDroppable DataAdapter 또는 BindingSources를 사용하지 말고 데이터 액세스, 비즈니스 로직 및 프리젠 테이션 (GUI)과 같은 각기 다른 관심사를 가진 다른 프로젝트에서 프로젝트를 적절하게 계층화하십시오. 당신이 단단한 층/m 계층 아키텍처가있는 경우 MVC3 and Entity Framework

는 데이터 관리 로직은 데이터 액세스 계층에 속하고 UI는 단지 필요한 것을 요청하는 것을 발견 할 것이다 :

여기에 내 대답을 참조 비즈니스 로직을 거쳐야합니다.

+0

+1 - 위에 명시된 바와 같이. Windows 형식을 사용하고 있기 때문에 괜찮은 아키텍처의 기본 사항을 잊어 버리지는 않습니다. DataGrid를 컬렉션 유형에 연결할 수 있으므로 List 을 사용하면 DataGrid를 채울 수 있습니다. 그런 다음 데이터 영역에 논리를 작성하여 데이터베이스 등을 업데이트 할 수 있습니다. – ChrisBD

+0

감사합니다. 실제로 이것은 일종의 종결 코드입니다. 제 자신의 코드를 많이 작성했습니다. MS의 베스트 프랙티스 아이디어와 일치하지 않을 수도 있지만 ... – mludd