热门标签 | 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

谢谢大家






推荐阅读
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文介绍如何通过参数化查询来防止SQL注入攻击,确保数据库的安全性。示例代码展示了在C#中使用参数化查询添加学生信息的方法。 ... [详细]
  • 本文介绍了 PHP 的基本概念、服务器与客户端的工作原理,以及 PHP 如何与数据库交互。同时,还涵盖了常见的数据库操作和安全性问题。 ... [详细]
  • JUnit下的测试和suite
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文作为《WM平台上使用Sybase Anywhere 11》系列的第二篇,将继续探讨在Windows Mobile (WM) 系统中如何高效地操作Sybase Anywhere 11数据库。继上一篇关于安装与基本测试的文章之后,本篇将深入讲解数据库的具体操作方法。 ... [详细]
  • 本文介绍了如何在两个Oracle数据库(假设为数据库A和数据库B)之间设置DBLink,以便能够从数据库A中直接访问和操作数据库B中的数据。文章详细描述了创建DBLink前的必要准备步骤以及具体的创建方法。 ... [详细]
  • 本文将详细介绍 SQL 中的 SUM 函数及其用法,并通过具体示例展示如何在实际场景中应用。 ... [详细]
  • 本文探讨了在一个使用Mongoid框架的项目中,如何处理当HABTM(has_and_belongs_to_many)关系中的逆向关联设置为nil时,子对象无法正确持久化的问题。 ... [详细]
  • 在尝试使用 Android 发送 SOAP 请求时遇到错误,服务器返回 '无法处理请求' 的信息,并指出某个值不能为 null。本文探讨了可能的原因及解决方案。 ... [详细]
  • 本文探讨了在SQL Server 2008环境下,当尝试删除拥有数据库架构的用户时遇到的问题及解决方案,包括如何查询和更改架构所有权。 ... [详细]
  • 本文详细介绍了 Java 中 org.w3c.dom.Node 类的 isEqualNode() 方法的功能、参数及返回值,并通过多个实际代码示例来展示其具体应用。此方法用于检测两个节点是否相等,而不仅仅是判断它们是否为同一个对象。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • mysql 授权!!
    为什么80%的码农都做不了架构师?MySQL的权限系统围绕着两个概念:认证-确定用户是否允许连接数据库服务器授权-确定用户是否拥有足够的权限执 ... [详细]
  • Django与Python及其他Web框架的对比
    本文详细介绍了Django与其他Python Web框架(如Flask和Tornado)的区别,并探讨了Django的基本使用方法及与其他语言(如PHP)的比较。 ... [详细]
  • Oracle 10g 和 11g 32位 OCI.DLL 文件下载
    32位 PL/SQL Developer 访问 64位 Oracle 11g 数据库时,需要使用 32位的 OCI.DLL 文件以确保正常连接和数据访问。本文将详细介绍如何获取并配置此文件。 ... [详细]
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社区 版权所有