2012-04-26 106 views
0

我有一个使用.Net驱动程序连接到Mysql的winforms应用程序。我编写了一个类来处理所有的数据库功能。我使用dataTable来存储来自mysql的绑定查询结果。如何将数据表传递给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 

此方法执行选择查询。我如何编写一个方法来插入/更新/删除数据库中的DataTable行?

回答

0

如果提供者能够为给定命令创建更新语句(UPDATE,INSERT,DELETE),那么我相信在更新DataTable之后,您可以简单地在数据适配器上调用Update方法。

adapter.Update(dta) 

DataTable对象跟踪对自身所做的更改。数据适配器对象然后使用该信息来确定要运行哪些SQL语句(UPDATE,INSERT,DELETE)。

+0

谢谢,但这是我第一次尝试。我在运行时抛出了InvalidOperationException – Trizzle 2012-04-27 04:14:55

+0

增加了adpter.updateCommand = comd,所以它现在不会抛出这个异常,但仍然没有更新发生 – Trizzle 2012-04-27 04:21:27

0

做了最明智的事情。我切换到绑定源控件并使用tableAdapters进行更新。像我这样的工程,不需要datagridviews