Argh! В этом коде есть 3 больших проблемы. Пожалуйста, обновите его так, чтобы исправить два из них:
Using cn As New SQLite.SQLiteConnection("Data Source=vault.db;"), _
cmd As New SQLiteCommand("INSERT INTO entries VALUES (@AppInput, @UserInput, @PassInput)", cn)
cmd.Parameters.AddWithValue("@AppInput", appinput.Text);
cmd.Parameters.AddWithValue("@UserInput", userinput.Text);
cmd.Parameters.AddWithValue("@PassInput", passinput.Text);
cn.Open()
cmd.ExecuteNonQuery()
End Using
Это предотвратит внедрение sql путем параметризации вашего запроса вместо прямой подстановки значений и предотвратит проблемы с блокировкой БД, убедившись, что ваше соединение расположено правильно, даже если выдается исключение.
Третья проблема заключается в том, что вы должны НИКОГДА хранить текстовые пароли в вашей базе данных (или где-либо еще в этом отношении). Прочтите о том, как хэшировать значения в .Net, хешировать и вводить пароль, прежде чем сохранять или сравнивать его.
После того, как вы сделали это, еще раз протестируйте свой код, чтобы убедиться, что вы по-прежнему получаете те же ошибки, что и раньше. Нам нужно убедиться, что это не решит проблему или не введет что-то новое. Затем мы можем приступить к решению проблемы отсутствующей таблицы, возможно, проверив вашу строку соединения .