2012-04-26 8 views
0

私はwinformsアプリケーションを.netドライバを使用してMySQLに接続しました。すべてのデータベース機能を扱うクラスを作成しました。私は、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を使用して更新しました。私のようなクラスは、データグリッドビューが必要ないところで動作します。

関連する問題