因为sqlite不支持直接修改字段类型, 所以只能创建新的表,再将原始数据复制过去。具体操作步骤如下:
第一步, 将表"tableName"的名称修改为 "oldTable"
string queryString = string.Format("ALTER TABLE {0} RENAME TO {1}", "tableName", "oldTable");
SQLiteCommand cmd = new SQLiteCommand(queryString, dbConnection());
cmd.ExecuteNonQuery();
第二步:重新创新新的表"tableName", 这里就可以修改字段的类型
queryString = @"CREATE TABLE IF NOT EXISTS " + "tableName"+ @"(
fTemplateid INTEGER,
fTemplatename VARCHAR)";
cmd.CommandText = queryString;
cmd.ExecuteNonQuery();
第三步: 恢复数据(将表"oldTable"中的数据恢复到 "tableName")
queryString = string.Format("INSERT INTO {0} SELECT fTemplateid,fTemplatename FROM {1}", "tableName", "oldTable");
cmd.CommandText = queryString;
cmd.ExecuteNonQuery();
第四步: 删除表"oldTable"
queryString = string.Format("DROP TABLE {0}", "oldTable");
cmd.CommandText = queryString;
cmd.ExecuteNonQuery();