База данных SQLite блокируется, когда в моем приложении c # используется команда Alter или Drop - PullRequest
0 голосов
/ 08 мая 2019

Я создал приложение C #, которое использует базу данных sqlite для хранения данных.

Приложение установлено на клиентском компьютере и работает нормально. Теперь приложение требует добавить новый столбец в базу данных. Когда я добавляю новый столбец в базу данных, он блокируется.

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

Ниже приведен код, используемый

 using (sqlite2 = new SQLiteConnection("Data Source=C:\\ProgramData\\CafeManagement\\Details.sqlite"))
                {
                    sqlite2.Open();

                    var cmd = sqlite2.CreateCommand();
                    cmd.CommandText = string.Format("SELECT * FROM sqlite_master WHERE type = 'table'");
                    var reader = cmd.ExecuteReader();
                    int nameIndex = reader.GetOrdinal("name");
                    while (reader.Read())
                    {

                        if (reader.GetString(nameIndex).Equals("Data"))
                        {
                            string sql = "create table NewData (Id INTEGER PRIMARY KEY, Name varchar(50),Total INTEGER,Cake varchar(50))";
                            SQLiteCommand command = new SQLiteCommand(sql, sqlite2);
                            command.ExecuteNonQuery();

                            string SQL1 = "INSERT INTO NewData(Id, Name, Total) SELECT Id, Name, Total FROM Data";
                            SQLiteCommand cmd1 = new SQLiteCommand(SQL1, sqlite2);
                            cmd1.ExecuteNonQuery();

                            string SQL2 = "DROP TABLE Data";
                            SQLiteCommand cmd2 = new SQLiteCommand(SQL2, sqlite2);
                            cmd2.ExecuteNonQuery();

                            sqlite2.Close();

                        }


                    }

                }

некоторые, пожалуйста, предоставьте решение для этого.

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