2012-04-26 4 views
0

.net 드라이버를 사용하여 mysql에 winforms 응용 프로그램을 연결했습니다. 모든 데이터베이스 기능을 처리하는 클래스를 작성했습니다. 나는 dataTable을 사용하여 mysql에서 바인딩을위한 쿼리 결과를 저장한다.DataTable을 MySQL에 전달하는 방법

Imports MySql.Data.MySqlClient 
Imports System.IO 

Public Class MysqlConSjC 

Private conn As MySqlConnection 
Private connStr As String 
Public strace As String 
Private status As Integer 

'status member variable for connectivity. 0 for success, 
'value of one indicates db connection error 
'value of 2 indicates query failure 

Private comd As MySqlCommand 
Private adpter As MySqlDataAdapter 
Private dta As DataTable 

Public Sub Query(ByVal SQl As String) 

    Try 
     comd.Connection = conn 
     comd.CommandText = SQl 
     adpter.SelectCommand = comd 
     adpter.Fill(dta) 
     status = 0 

    Catch ex As MySqlException 
     strace = ex.StackTrace() 
     DisconnectMysql() 
     status = 2 

    End Try 
    End Sub 

이 메서드는 select 쿼리를 수행합니다. 어떻게 삽입/업데이트/데이터베이스의 DataTable 행을 삭제하는 방법을 쓸 것이라고?

답변

0

공급자가 주어진 명령에 대한 업데이트 문 (UPDATE, INSERT, DELETE)을 만들 수 있었다면 DataTable을 업데이트 한 후 데이터 어댑터에서 Update 메서드를 호출하면됩니다.

adapter.Update(dta) 

DataTable 개체는 자체에 대한 변경 내용을 추적합니다. 데이터 어댑터 오브젝트는이 정보를 사용하여 실행할 SQL 문 (UPDATE, INSERT, DELETE)을 판별합니다.

+0

감사하지만 그것이 내가 시도한 첫 번째 것입니다. 런타임에 InvalidOperationException이 발생했습니다. – Trizzle

+0

adpter.updateCommand = comd를 추가 했으므로 이제는 예외가 발생하지 않지만 아직 업데이트가 없습니다. – Trizzle

0

가장 현명한 일을 했습니까? 바인딩 소스 컨트롤로 전환하고 tableAdapters를 사용하여 업데이트했습니다. 광산과 같은 클래스는 DataGridviews가 필요없는 곳에서 작동합니다.

관련 문제