c# sqlite 修改字段类型

因为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();
相关推荐
qq_342295821 小时前
如何为容器内多个列表实现统一滚动条.txt
jvm·数据库·python
qq_206901391 小时前
CSS如何引入自适应图标_利用svg外链配合css控制颜色
jvm·数据库·python
weixin_408717772 小时前
Go语言怎么编译Linux程序_Go语言编译Linux可执行文件教程【避坑】
jvm·数据库·python
APIshop2 小时前
Python 爬虫获取京东商品详情 API 接口实战指南
java·服务器·数据库
XmasWu12252 小时前
【Hermes Agent进阶】开发自定义技能
网络·数据库
刘~浪地球2 小时前
数据库性能优化实战
数据库·性能优化
2401_865439632 小时前
CSS怎么在flex布局中实现项目均分间距_设置justify-content space-evenly
jvm·数据库·python
m0_493934532 小时前
CSS如何实现输入框禁用样式_使用-disabled伪类设定
jvm·数据库·python
m0_716430072 小时前
如何用 classList.toggle 实现侧边栏菜单的点击展开与收起
jvm·数据库·python