Я создал приложение 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();
}
}
}
некоторые, пожалуйста, предоставьте решение для этого.