2015-02-01 5 views
0

У меня есть форма входа в систему, которая должна сохранять зарегистрированных пользователей на столе и удалять их при выходе из приложения. проблема заключается в том, что при выполнении способа обновления в адаптере таблицы, он не возвращает ошибку, но не обновляет таблицы БДtableadapter не обновляет таблицу локальной базы данных

код ниже:

Sub passwordValid() 
    Hide() 
    Try 
     Dim userIDAdd As String = DataGridView1.Rows(0).Cells(0).Value 
     Dim userRightsAdd As String = DataGridView1.Rows(0).Cells(4).Value 
     Dim CurrentDateTime As Date = Now 

     Dim AddRow As DataRow = LocalDB1DataSet.Tables("LoggedOn").NewRow 
     AddRow(0) = userIDAdd 
     AddRow(1) = userRightsAdd 
     AddRow(2) = CurrentDateTime 
     LocalDB1DataSet.Tables("LoggedOn").Rows.Add(AddRow) 
     Try 
      Me.Validate() 
      Me.LoggedOnBindingSource.EndEdit() 
      Me.LoggedOnTableAdapter.Update(Me.LocalDB1DataSet.LoggedOn) 
      MsgBox("Logged In as: " & LoggedInUser) 
     Catch ex As Exception 
      MsgBox(ex.Message) 
     End Try 
    Catch ex As Exception 
     MsgBox(ex.Message) 
    End Try 
    Main.Show() 
End Sub 

Любая помощь или объяснение было бы весьма признателен.

+0

Вы пытались сделать 'AddRow (" columnName ")' вместо 'AddRow (0)'? Может быть, это путается в каком столбце, чтобы добавить данные по какой-то причине. – Supersnake

+0

Скорее всего, он обновляет таблицу, но вы просто смотрите не в том месте или в неподходящее время. Если нет никакого исключения, то вызов 'Update' работает, поэтому он должен возвращать число. Проверьте, что это за номер. Если он равен нулю, то никаких изменений не будет сохранено, что кажется маловероятным. Если это не ноль, то есть изменения, и они были сохранены, поэтому вы просто не ищете их должным образом. В этом случае прочитайте следующее, чтобы узнать, как управлять локальными файлами данных: http://msdn2.microsoft.com/en-us/library/ms246989(VS.80).aspx – jmcilhinney

+0

Я пробовал имя фактического столбца, и нет удачи. по-прежнему остается пустой. –

ответ

0

Я сделал некоторые исследования в соответствии с тем, что @jmcilhinney сказал:

Update возвращает 1, то одна запись была сохранена. Если вы следовали за предоставленной мной ссылкой, тогда вы должны знать, что вы ищете неправильную базу данных, и по умолчанию правильная база данных, которую нужно искать, перезаписывается каждый раз, когда вы перестраиваете свой проект.

Получается, что это был не совсем случай, но это привело меня к причине этого. каждый раз, когда вы компилируете, он заменяет старую БД, но этот БД оставался пустым, но если приложение запускается через VS, оно создает резервную БД БД и когда приложение останавливается в VS, оно восстанавливает выпущенную БД с помощью резервной копии DB. это мой собственный вывод.