因为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();