2015-01-29 2 views
0

1) У меня проблема с тем, что код работает правильно во время выполнения и обновляет данные сетка окон .net, но после закрытия формы и когда я проверю DB, данные не обновляются там, (все еще db без изменений)MS Access Db не сохраняется в Vb.net

2) У меня также есть проблема после публикации, пожалуйста, посмотрите изображение!

enter image description here

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Using con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\labprofiles.mdb;Persist Security Info=True") 
      con.Open() 
      Dim cmd As OleDbCommand = New OleDbCommand("DELETE FROM Mint", con) 
      cmd.ExecuteNonQuery() 

     End Using 
     instrecall() 
End Sub 

Private Sub instrecall() 
     Using con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\labprofiles.mdb;Persist Security Info=True") 
      con.Open() 
      Try 
      Dim cmd As OleDbCommand = New OleDbCommand("UPDATE int SET timespan = @timespan, nextscandue = @next WHERE (type = 'folder')", con) 
      cmd.Parameters.AddWithValue("@timespan", 20) 
      Dim nex As String = DateAndTime.Now.AddMinutes(20) 
      cmd.Parameters.AddWithValue("@next", nex) 
      cmd.ExecuteNonQuery() 
      con.Close() 
      con.Open() 
      Dim cmd1 As OleDbCommand = New OleDbCommand("INSERT INTO Mint SELECT * FROM int WHERE (type = 'folder')", con) 
      cmd1.ExecuteNonQuery() 
     Catch ex As Exception 
      MsgBox(ex.ToString()) 
      End Try 
     End Using 
End Sub 
+1

попробовать тесную связь после cmd1.ExecuteNonQuery(), добавить в конце концов заблокировать, чтобы закрыть соединение, а потому, что у вас есть имя таблицы как int, которое является ключевым словом reserve, поэтому используйте скобки вокруг [int] – HaveNoDisplayName

+0

@ Piysuh, благодаря его работе сейчас, но 2 проблемы все еще одинаковы –

+0

int table name в качестве примера, имя таблицы отличается –

ответ

0

Закрой соединения один раз закончил ....

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Using con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\labprofiles.mdb;Persist Security Info=True") 
     con.Open() 
     Try 
      Dim cmd As OleDbCommand = New OleDbCommand("DELETE FROM Mint", con) 
      cmd.ExecuteNonQuery() 
     Catch ex as Exception 
      MsgBox(ex.ToString()) 
     Finally 
      con.Close() 
     End Try 
    End Using 
    instrecall() 
End Sub 

Private Sub instrecall() 
     Using con As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\labprofiles.mdb;Persist Security Info=True") 
      con.Open() 
      Try 
      Dim cmd As OleDbCommand = New OleDbCommand("UPDATE Mint SET timespan = @timespan, nextscandue = @next WHERE (type = 'folder')", con) 
      cmd.Parameters.AddWithValue("@timespan", 20) 
      Dim nex As String = DateAndTime.Now.AddMinutes(20) 
      cmd.Parameters.AddWithValue("@next", nex) 
      cmd.ExecuteNonQuery() 
      con.Close() 
      con.Open() 
      Dim cmd1 As OleDbCommand = New OleDbCommand("INSERT INTO Mint SELECT * FROM int WHERE (type = 'folder')", con) 
      cmd1.ExecuteNonQuery() 
     Catch ex As Exception 
      MsgBox(ex.ToString()) 
     Finally 
      con.Close() 
     End Try 
    End Using 
End Sub 
Смежные вопросы