SqLite踩的坑
一、修改表名称、增加字段、查询表结构、修改表结构字段类型
.修改表名称 ALTER TABLE 旧表名 RENAME TO 新表名 eg: ALTER TABLE or_sql_table RENAME TO new_table; .添加字段 ALTER TABLE 表名 ADD COLUMN 列名 数据类型 eg: ALTER TABLE new_table ADD COLUMN sex Text; .查询表结构 PRAGMA TABLE_INFO (表名) eg: PRAGMA TABLE_INFO (new_table); .修改表结构字段类型 SQLite 仅仅支持 ALTER TABLE 语句的一部分功能,我们可以用 ALTER TABLE 语句来更改一个表的名字,也可向表中增加一个字段(列),但是我们不能删除一个已经存在的字段,或者更改一个已经存在的字段的名称、数据类型、限定符等等。 而修改一列无法像其他数据库那样直接以“ALTER TABLE 表名 ADD COLUMN 列名 数据类型”的方式来完成,所以要换种思路,具体步骤看下面: --.将表名改为临时表 ALTER TABLE "Student" RENAME TO "_Student_old_20140409"; --.创建新表 CREATE TABLE "Student" ("Id" INTEGER PRIMARY KEY AUTOINCREMENT, "Name" Text); --.导入数据 INSERT INTO "Student" ("Id", "Name") SELECT "Id", "Title" FROM "_Student_old_20140409"; --.更新sqlite_sequence UPDATE "sqlite_sequence" SET seq = WHERE name = 'Student'; 由于在Sqlite中使用自增长字段,引擎会自动产生一个sqlite_sequence表,用于记录每个表的自增长字段的已使用的最大值,所以要一起更新下。如果有没有设置自增长,则跳过此步骤。 --.删除临时表(可选) DROP TABLE _Student_old_20140409;
修改表
参考:https://blog.csdn.net/zp1307700/article/details/52848410
二、解决EF6中表名变成复数的情况
在用EF6 时,在进行数据调用的时候,总提示数据表名对象错误。。
sql logic error no such table: locareas 实际 表名为locarea
解决此问题需要在继承DbContext的实体类中
加入:
using System;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
和重写方法
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
参考:https://www.cnblogs.com/blackice/p/3667426.html
三、“该字符串未被识别为有效的DateTime”
异常详细信息: System.FormatException: 该字符串未被识别为有效的 DateTime。
解决方案:
在日期保存到Sqlite数据库时转换一个类型,比如:string _now = System.DateTime.Now.ToString("s"); 也就是说在.ToString()方法中加一个s,即可解决日期读取错误的问题。 简单代码示例: string _indate = Request["indate"]; //输入的日期如:2009-2-21
DateTime _inTime = Convert.ToDateTime(_indate); //如下是保存数据SQL语句 insert into 表(indate) values(‘“ + _inTime.ToString("s") + "'); //这里转换 因为iso 8601的描述:(http://msdn.microsoft.com/zh-cn/library/ms187819.aspx) 给出了字符串示例:
* -- ::
* -- ::10.487 所以Sqlite保存的日期要转为iso 8601标准字符串格式 使用 日期.ToString("s");这种方法转换成 iso 8601标准字符串格式了。
参考:https://www.cnblogs.com/huxiaolin/p/4148692.html
四、配置app.config
安装后,在app.config中缺少一句provider,添加上。
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
<!-- 1. Solves SQLite error of "Unable to find the requested .Net Framework Data Provider."-->
<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
</providers> 参考:https://www.cnblogs.com/wolf-sun/p/6957702.html 五、bool类型
bool类型存储时只能存储0,1,null
SqLite踩的坑的更多相关文章
- 从零开始学 Java - Spring 支持 CORS 请求踩的坑
谁没掉进过几个大坑 记得好久之前,总能时不时在某个地方看到一些标语,往往都是上面一个伟人的头像,然后不管是不是他说的话,下面总是有看起来很政治正确且没卵用的屁话,我活到目前为止,最令我笑的肚子痛得是下 ...
- webuploader插件,我踩得坑
我在目前的公司做的项目要么是原生写法去做项目,要么就是vue+webpack做项目,但是vue这部分只是用了模板template,vue其他的都没用. 有一个项目需要做上传图片的功能,老大扔给我一个插 ...
- 谈谈调用腾讯云【OCR-通用印刷体识别】Api踩的坑
一.写在前面 最近做项目需要用到识别图片中文字的功能,本来用的Tesseract这个写的,不过效果不是很理想. 随后上网搜了一下OCR接口,就准备使用腾讯云.百度的OCR接口试一下效果.不过这个腾讯云 ...
- Asp.Net Core中使用Swagger,你不得不踩的坑
很久不来写blog了,换了新工作后很累,很忙.每天常态化加班到21点,偶尔还会到凌晨,加班很累,但这段时间,也确实学到了不少知识,今天这篇文章和大家分享一下:Asp.Net Core中使用Swagge ...
- python绘图踩的坑
踩的坑 pyecharts安装地图包 pip install echarts-countries-pypkg 报错Unknown or unsupported command 'install' 这可 ...
- 使用CCNode作为容器容易踩的坑
Cocos2dx中CCNode经常作为一个父容器,里面装一些UI控件,最后组成一个复杂的自定义的UI控件,但是在使用别人的自定义控件和自己写自定义问题的时候会踩一些坑. 首先拿到一个自定义的UI控件一 ...
- java基础不牢固容易踩的坑
java基础不牢固容易踩的坑 经过一年java后端代码以及对jdk源码阅读之后的总结,对java中一些基础中的容易忽略的东西写下来,给偏爱技术热爱开源的Coder们分享一下,避免在写代码中误入雷区. ...
- Ubuntu中安装FTP 服务器自己踩得坑
12点多了,擦!做个码农真不容易呀! 系统:Ubuntu16.04 安装:FTP 步骤: 1.不管有没有一上来我先卸载: sudo apt-get purge vsftpd 2.再安装:sudo ap ...
- python——pyinstaller踩的坑 UnicodeDecodeError
程序本身运行没任何毛病,奈何用pyinstaller -w xx.py的时候提示——UnicodeDecodeError: 'ascii' codec can't decode byte 0xb3 i ...
随机推荐
- go-爬虫-百度贴吧(并发版)
爬取百度贴吧的网页 非并发版 package main import ( "fmt" "io" "net/http" "os&qu ...
- Java生鲜电商平台-电商订单系统全解析
Java生鲜电商平台-电商订单系统全解析 说明:Java生鲜电商平台-电商订单系统全解析主要讲解OMS的内容,设计,开发,架构等知识. 今天分享将会分为以下三个环节来阐述: 1.订单系统的介绍 2.订 ...
- Python-警告处理
python 下Warning的使用 起因是这样的,当我使用pymysql模块执行建表的sql语句时获,在控制台输出了红色的消息,但是程序并没有终止而是继续运行了 sql语句如下: CREATE TA ...
- shell 编程练习题2
需求1:使用root用户清空/var/log/messages日志,并每次执行保留最近100行 1.必须是root用户 2.需要保留最后100行 [root@manager if]# cat ...
- JS基础语法---分支语句之:三元表达式
获取两个数字中的最大值 用if-else语句 var num1 = 10; var num2 = 100; if (num1 > num2) { ...
- css布局技巧
CSS用户界面样式 鼠标样式currsor li{ cursor:pointer: } 设置或检索在对象上移动鼠标指针采用何种系统预定义的光标形状 属性值 描述 default 默认 pointer ...
- javascript json的使用
转自:http://blog.csdn.net/lushuaiyin/article/details/7061483 对于js使用json,首先到官网拷贝json.js文件,地址http://www. ...
- python从入门到放弃之协程
协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B ...
- bay——安装_RAC11g_LC_ASM方式_测试环境.txt
★★★____★☆★〓〓〓〓→VMware vSphere Client6.0 https://10.20.4.200/ 下载Vwmare IP:10.20.4.200-------账号:root-- ...
- [Go] imap收信非并发
待修正 package main import ( "flag" "fmt" "io/ioutil" "log" &qu ...