Sqlite`在这里插入代码片`报错:no such column:xxx

报错

今天做一个unity中的Sqlite项目,查询数据时,报错:no such column :XXX;
定义:
SelectSingleLineByUSE(string _tableName, string _use)
{
string quary = “SELECT * FROM " + _tableName+ " WHERE USE=”+ _use;
return ExecuteQuary(quary);
}

调用:
SelectSingleLineByUSE(MyTable,“房租”);

检查

1、创建时,有“USE”列,检查之后,发现这个列是存在的,打开数据库的表,发现USE列也是存在的;
2、检查数据库语句,Log中打印:SELECT * FROM MyTable+ " WHERE USE=房租;发现空格并没有问题,不是格式错误;

解决

后来终于突然明白过来:USE的类型为VARCHAR(64),不能直接用“=”进行比较,需要将列数据用 COLLATE NOCASE修饰
CREATE TABLE [MyTable]
(
[USE] TEXT NOT NULL COLLATE NOCASE
);
然后判断时用string,format("’{0}’",“房租”)将“房租”字符串转为Sqlite中的字符串,语句:SELECT * WHERE “USE”=string.format("’{0}’",“房租”),此时功能正常!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗黑丶骑士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值