2016-01-11 6 views
1

Я использую MySQL в vb.net Datagridview отображается правильно, и все работает правильно, проблема возникает, когда я пытаюсь обновить изменения в базе данных с помощью метода обновления (метода) По умолчанию данные обновляются в памяти «стираются студенты с ID =« 2 »« Но в базе данных не обновляется, я читаю документацию и должен работать с обновлением datosAlumnos.Update (ds, «alumnos» «)Mysql DataAdapter Update Method - не сохраняет изменения

Imports MySql.Data.MySqlClient 
    Public Class Form1 
     Dim con As New MySqlConnection 
     Dim stringCon As String = "server=localhost; user id=root; password=; database=centroeducativo" 
     Dim listViewAlumnos As New ListBox() 

     Dim ds As New DataSet() 
     Private Sub Form1_Load(ByVal sender As Object, _ 
     ByVal e As System.EventArgs) Handles MyBase.Load 
      Try 
       con.ConnectionString = stringCon 
       con.Open() 
       Dim datosTablas As New MySqlDataAdapter("SHOW TABLES", con) 
       Dim datosAlumnos As New MySqlDataAdapter("SELECT * FROM alumnos ORDER BY Nombre", con) 
       Dim datosAsignaturas As New MySqlDataAdapter("SELECT * FROM asignaturas", con) 
       Dim datosMatriculas As New MySqlDataAdapter("SELECT * FROM matriculas", con) 

       datosTablas.Fill(ds, "tablas") 
       datosAlumnos.Fill(ds, "alumnos") 
       datosAsignaturas.Fill(ds, "asignaturas") 
       datosMatriculas.Fill(ds, "matriculas") 

       con.Close() 

       Dim tabla As DataTable 
       tabla = ds.Tables("tablas") 
       Dim fila As DataRow 
       Me.ListBox1.Items.Clear() 
       For Each fila In tabla.Rows 

        Me.ListBox1.Items.Add(fila.Item("Tables_in_centroeducativo")) 
       Next 
       Dim filaBorrada As DataRow() = ds.Tables("alumnos").Select("id=2") 
       filaBorrada(0).Delete() 
       datosAlumnos.Update(ds, "alumnos") 
      Catch ex As Exception 

      End Try 
     End Sub 


    Private Sub formularioTabla(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged 
     Dim curItem As String = ListBox1.SelectedItem.ToString() 
     Select Case curItem 
      Case "alumnos" 
       FormularioAlumno() 
      Case "asignaturas" 
       FormularioAsignaturas() 
      Case "matriculas" 
       FormularioMatriculas() 
      Case Else 
       MsgBox("none") 
     End Select 
    End Sub 

    Private Sub FormularioAlumno() 
     Panel1.Controls.Clear() 
     Dim dv As DataView = ds.Tables("alumnos").DefaultView 
     con.Close() 
     Dim DataGridView As New DataGridView() 
     Panel1.Controls.Add(DataGridView) 
     DataGridView.AutoSize = True 
     DataGridView.DataSource = dv 
     DataGridView.Columns("id").Visible = False 
    End Sub 
End Class 
+0

Если есть ошибка, вы никогда не узнаете, потому что этот пустой Catch просто проглатывает их. Вам лучше переместить это на кнопку, по крайней мере, чтобы отладить ее. – Plutonix

+0

Где команды вставки/обновления/удаления? или сборщик команд? –

+0

Возможно, вы пропустите мне что-то вроде: CommandBuilder to mysql? – Cazs

ответ

2

кажется, вы забыли установить InsertCommand, UpdateCommand и специально Deletecommand.

Чтобы сделать данные обновления адаптера данных, они должны иметь эти команды. Вы можете установить эти команды вручную или с помощью MySqlCommandBuilder.

Dim myConn As New MySqlConnection("Connection String") 
Dim myDataAdapter As New MySqlDataAdapter() 
myDataAdapter.SelectCommand = New MySqlCommand("Select Query", myConn) 
Dim myCommandBuilder As MySqlCommandBuilder = New MySqlCommandBuilder(myDataAdapter) 
+0

, если окажется, что это было, но не совсем понятно, как это работает, потому что оно объявлено только один раз и не перезвонить? – Cazs

+0

Когда вы создаете конструктор команд с помощью «DataAdapter», он создает команды вставки/обновления/удаления для адаптера данных с помощью оператора select. Чтобы сделать данные обновления адаптера данных, они должны иметь эти команды. –

+0

Спасибо, запрос, как может показаться на публичном уровне «Dim As New MySqlDataAdapter datosAlumnos», чтобы сделать кнопку сохранения, и вы можете получить к ней доступ? – Cazs

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

  • Нет связанных вопросов^_^