【问题标题】:How to pass a DataTable to Mysql如何将 DataTable 传递给 Mysql
【发布时间】:2012-04-26 14:49:51
【问题描述】:

我有一个使用 .Net 驱动程序连接到 Mysql 的 winforms 应用程序。我编写了一个类来处理所有数据库功能。我使用 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

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

【问题讨论】:

    标签: mysql vb.net winforms


    【解决方案1】:

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

    adapter.Update(dta)
    

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

    【讨论】:

    • 谢谢,但这是我尝试的第一件事。我在运行时抛出了 InvalidOperationException
    • 添加了 adpter.updateCommand = comd 所以它现在不会抛出那个异常但是仍然没有更新发生
    【解决方案2】:

    做了最明智的事情。我切换到绑定源控制并使用 tableAdapters 进行更新。像我这样的类在不需要数据网格视图的情况下工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      • 2014-05-19
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 1970-01-01
      相关资源
      最近更新 更多