Как разблокировать sqlite таблицу в C #, чтобы обновить данные, хранящиеся в таблице - PullRequest
0 голосов
/ 06 января 2019

Я довольно новичок в C #, и в настоящее время я делаю приложение Windows Forms, которое позволяет пользователям входить в систему, регистрироваться, а также обновлять свои учетные данные, то есть их имена пользователей и пароли. До сих пор я выполнил вход в систему и зарегистрировался, но сейчас я нахожусь. застрял в обновлении пользовательских данных. проблема в том, что когда я пытаюсь запустить код для обновления пользовательских данных, он говорит, что файл базы данных заблокирован

мое приложение позволяет пользователю входить в систему, регистрироваться и обновлять свои данные, если они этого хотят. пользовательские данные хранятся в базе данных sqlite. файл базы данных называется Users, а таблица, в которой хранятся данные, называется UserInfo.

        using (var con = new SQLiteConnection("Data Source=Users.sqlite;Version=3;"))
        using (var cmd = new SQLiteCommand())
        {

            cmd.Connection = con;
            con.Open();

            var cmd1 = @"select count(*) from UserInfo where UserName = @oldusername
                       and Password = @oldpassword;";

            var cmd2 = @"UPDATE UserInfo SET UserName = @newusername , Password= @newpassword
                       where UserName = @oldusername and Password = @oldpassword;";

            cmd.CommandText = cmd1;
            cmd.Parameters.AddWithValue("@oldusername", oldusername);
            cmd.Parameters.AddWithValue("@oldpassword", oldpassword);
            var userCount = (long)cmd.ExecuteScalar();
            if (userCount == 1)
            {
                cmd.CommandText = cmd2;
                cmd.Parameters.AddWithValue("@newusername", newusername);
                cmd.Parameters.AddWithValue("@newpassword", newpassword);
                var result = (Int32)cmd.ExecuteNonQuery();
                if (result == 1)
                {
                    Console.WriteLine("Username and Password Updated Successfully! | Task Completed");
                }

            }

            else
            {
                MessageBox.Show("Invalid username or password",
                                "Incorrect details entered");
            }
        }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...