2012-04-26 3 views
0

У меня есть приложение winforms, подключенное к Mysql, используя драйвер .Net. Я написал класс для обработки всех функциональных возможностей базы данных. Я использую 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 

Этот метод выполняет выборный запрос. Как написать метод вставки/обновления/удаления строк DataTable в базе данных?

ответ

0

Если провайдер смог создать операторы обновления (UPDATE, INSERT, DELETE) для данной команды, то я считаю, что вы можете просто вызвать метод Update на адаптере данных после внесения обновлений в DataTable.

adapter.Update(dta) 

Объект DataTable отслеживает изменения, внесенные в себя. Затем объект адаптера данных использует эту информацию для определения, какие операторы SQL (UPDATE, INSERT, DELETE) запускаются.

+0

Спасибо, но это первое, что я пробовал. Я получил InvalidOperationException, запущенное во время выполнения – Trizzle

+0

Добавлен adpter.updateCommand = comd, поэтому он не генерирует это исключение, но обновления не происходит – Trizzle

0

Сделал самую разумную вещь. Я переключился на элемент управления привязкой и использовал tableAdapters для обновления. Класс, как мои работы, где datagridviews не нужны

Смежные вопросы