热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#中SQLite报错:在"\\s\\"附近出现语法错误,如何解决?

SQLite Error: near "s": syntax error我总是得到这个错误 near"s": syntax error我的实现:litecon.


SQLite Error: near "s": syntax error


我总是得到这个错误

near"s": syntax error

我的实现:









litecon.ConnectionString ="Data Source=" + AppAddress +"\\\\database\\\\mynew22.db;Version=3;UTF16Encoding=True";


从这个方法收到错误 -> liteda.Fill(dt);









        if (lang =="FaToMe")

            liteda.SelectCommand = new SQLiteCommand("select * from mey where trans like '%" + str +"%'", litecon);

        else

            liteda.SelectCommand = new SQLiteCommand("select * from mey where pe like '%" + str +"%'", litecon);

        DataTable dt = new DataTable();

        liteda.Fill(dt); //liteda is SQLiteDataAdapter



这个选择命令没有区别...










"select * from mey where pe like '%" + str +"%'"










"select eng"


总是说在 "s" 附近:语法错误

但如果使用 "xselect * from mey",请在 "x" 附近说:语法错误

我正在使用这个库

http://adodotnetsqlite.sourceforge.net/



相关讨论




  • 你要求注射攻击...


  • 我的桌子是什么样子的?


  • @PinnyM no - str 是我的值/变量想要在我的数据库中找到它,它可以具有任何值,例如 'iran'、'usa'、....


  • 您是否尝试过用分号 (;) 终止查询?


  • @brianestey - 看到这个axgig.com/images/15579528865533473290.png


  • @PinnyM - 不起作用!


  • 好吧,您遇到了这样一个问题,即像这样处理命令而不是使用正确的参数化查询。以自己的方式进行操作,您会遇到不太"正确"的 SQL 语句,因为您没有平衡逗号或引号。使用参数化查询将让库为您完成工作并代表您处理它。获取它生成的 SQL 命令的副本(打印输出)。手动在您的数据库上运行它 - 您会得到什么?


  • 您可以跟踪正在使用的实际字符串(在添加 str 参数之后)并将其张贴在这里吗?


  • 我的查询在"SQLite Expert"中正常工作,但当我试图在我的程序中使用它时不起作用......


  • 我会再试一次问你:请打印出你的应用程序正在生成的 SQL,粘贴到这里。它与您手动运行的不同吗?帮助我们帮助您。 str 究竟是什么?


  • @PinnyM - 添加 str 后我的最终选择命令,我收到错误(str is 'pengu') -"select * from mey where pe like '%pengu%';"


  • liteda 对象是否附加了任何其他查询?也许是 InsertCommandUpdateCommandDeleteCommand?你能发布与这个 liteda 对象的生命周期相关的代码吗?


  • @PinnyM - 我所有的实现 codepaste.net/z44hbe [访问正常] 但 SQLite 没有(所有命令)--- 对不起我的英语不好


  • 您正在重用 liteda 对象,而没有从以前的查询中清除它。尝试为您正在运行的每个查询创建一个新的 SQLiteDataAdapter(工厂方法在这里很有用)。


  • @PinnyM - 只有这一部分有错误! codepaste.net/g1cshj






str 的值包含撇号时,此查询将不起作用,因为字符串将过早终止:










select * from mey where trans like '%King Solomon's Mines%'


你必须使用参数:









cmd = new SQLiteCommand("select * from mey where trans like @pattern", litecon);

cmd.Parameters.AddWithValue("@pattern","%" + str +"%");





相关讨论




  • 不起作用 - 我尝试使用这个命令,"select * from mey where trans like '%tr%'" - 但收到(靠近"s":语法错误)


  • 所以是 select 失败了;你可能在那里有一些控制字符。






问题通常与撇号有关。您可以使用它们,但必须像另一个答案中提到的那样加倍,

select * from mey where trans like '%King Solomon's Mines%'

应该改为
select * from mey where trans like '%King Solomon''s Mines%'.

一个快速的解决方案是做 "select * from mey where trans like"+"'%King Solomon's Mines%'".Replace("'","''")

无论如何都会成功的。


问题解决了!

使用了这些库,问题就解决了……

http://www.devart.com/dotconnect/sqlite/download.html

谢谢大家






推荐阅读
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 本文介绍 SQL Server 的基本概念和操作,涵盖系统数据库、常用数据类型、表的创建及增删改查等基础操作。通过实例帮助读者快速上手 SQL Server 数据库管理。 ... [详细]
  • 本题来自WC2014,题目编号为BZOJ3435、洛谷P3920和UOJ55。该问题描述了一棵不断生长的带权树及其节点上小精灵之间的友谊关系,要求实时计算每次新增节点后树上所有可能的朋友对数。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文详细介绍了JSP的三大指令:page、include和taglib,重点探讨了静态包含与动态包含的区别及其应用场景,并解释了如何使用taglib指令引入第三方标签库。 ... [详细]
  • 如何清除Chrome浏览器地址栏的特定历史记录
    在使用Chrome浏览器时,你可能会发现地址栏保存了大量浏览记录。有时你可能希望删除某些特定的历史记录而不影响其他数据。本文将详细介绍如何单独删除地址栏中的特定记录以及批量清除所有历史记录的方法。 ... [详细]
  • 利用Selenium与ChromeDriver实现豆瓣网页全屏截图
    本文介绍了一种使用Selenium和ChromeDriver结合Python代码,轻松实现对豆瓣网站进行完整页面截图的方法。该方法不仅简单易行,而且解决了新版Selenium不再支持PhantomJS的问题。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 本文详细介绍了Hive中用于日期和字符串相互转换的多种函数,包括从时间戳到日期格式的转换、日期到时间戳的转换,以及如何处理不同格式的日期字符串。通过这些函数,用户可以轻松实现日期和字符串之间的灵活转换,满足数据处理中的各种需求。 ... [详细]
  • 1.执行sqlsever存储过程,消息:SQLServer阻止了对组件“AdHocDistributedQueries”的STATEMENT“OpenRowsetOpenDatas ... [详细]
  • 探讨 HDU 1536 题目,即 S-Nim 游戏的博弈策略。通过 SG 函数分析游戏胜负的关键,并介绍如何编程实现解决方案。 ... [详细]
  • MySQL 基础操作与优化
    本文详细介绍了 MySQL 的基础连接、数据库及表的操作,涵盖创建、修改、删除等常用命令,并深入解析了数据类型、列属性、索引、外键和存储引擎等内容。 ... [详细]
author-avatar
范二小姐儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有