Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#sqlite命令格式_C#_Sqlite - Fatal编程技术网

c#sqlite命令格式

c#sqlite命令格式,c#,sqlite,C#,Sqlite,在我的数据库中有一个条目ABCCBAA 我的查询如下所示: string sql = SELECT * FROM signatures WHERE length(signature) BETWEEN 6 AND 8 AND signature LIKE ABCCBAA OR length(signature) BETWEEN 6 AND 8 AND signature LIKE _BCCBAA OR length(signature) BETWEEN

在我的数据库中有一个条目
ABCCBAA

我的查询如下所示:

    string sql = SELECT * FROM signatures WHERE length(signature) BETWEEN 6 AND 8 AND signature LIKE ABCCBAA 
        OR length(signature) BETWEEN 6 AND 8 AND signature LIKE _BCCBAA 
        OR length(signature) BETWEEN 6 AND 8 AND signature LIKE A_CCBAA 
        OR length(signature) BETWEEN 6 AND 8 AND signature LIKE AB_CBAA 
        OR length(signature) BETWEEN 6 AND 8 AND signature LIKE ABC_BAA 
        OR length(signature) BETWEEN 6 AND 8 AND signature LIKE ABCC_AA 
        OR length(signature) BETWEEN 6 AND 8 AND signature LIKE ABCCB_A 
        OR length(signature) BETWEEN 6 AND 8 AND signature LIKE ABCCBA_
我用这个1查询搜索了很多记录,所以请原谅我的过度使用

我一直在针对W3Schools示例尝试此查询,在上下文中使用时效果良好。我知道我使用的是SQLite,而不是SQL,但还没有完全使用语法

我希望这些或语句中的任何一个都能获取结果,但由于语法错误,我甚至还不能执行它。目前我正在恢复健康

“SQL逻辑错误或缺少数据库

没有这样的专栏:ABCCBAA“

为什么要将其用作列名?其他的例子让我相信这个问题是正确的


我已经玩了很长时间了,所以可能是一些简单的东西我没有正确理解。

您需要引用字符串,例如:

WHERE length(signature) BETWEEN 6 AND 8 AND signature LIKE 'ABCCBAA'
而且,在6到8之间不需要太多的
或长度(签名)。只需做如下操作:

string sql = @"SELECT * FROM signatures 
               WHERE length(signature) BETWEEN 6 AND 8 
               AND (signature LIKE 'ABCCBAA' OR signature LIKE '_BCCBAA' ...)";

您需要引用字符串,例如:

WHERE length(signature) BETWEEN 6 AND 8 AND signature LIKE 'ABCCBAA'
而且,在6到8之间不需要太多的
或长度(签名)。只需做如下操作:

string sql = @"SELECT * FROM signatures 
               WHERE length(signature) BETWEEN 6 AND 8 
               AND (signature LIKE 'ABCCBAA' OR signature LIKE '_BCCBAA' ...)";

看起来您正在尝试进行某种模糊字符串匹配。可能有更好的方法,如果我是你,我会查找它,例如,
\u
匹配单个字符,因此你的查询永远不能匹配不同长度的内容。@TimS。感谢您给我指出模糊匹配,我将看看在sql查询中可以做些什么。关于长度,我用一些更难看的代码解决了这个问题:)看起来你在尝试一种模糊字符串匹配。可能有更好的方法,如果我是你,我会查找它,例如,
\u
匹配单个字符,因此你的查询永远不能匹配不同长度的内容。@TimS。感谢您给我指出模糊匹配,我将看看在sql查询中可以做些什么。关于长度,我已经用一些更难看的代码解决了这个问题:)我尝试过这样做,但是得到了大量不同的语法错误,引号造成了严重的破坏,并用.Replace(“,@“”)来逃避它,或者由于参数不起作用,它永远不会正确映射。无论如何,我会再试一次。你应该使用SQL参数,而不是转义。这太傻了。。。通过正确的参数化解决了我所有的问题。谢谢你的提示,我会看看我能做些什么来让它不难看。我试过这么做,但是得到了大量不同的语法错误,引号造成了严重的破坏,并用.Replace(“,@”)来逃避它,或者因为参数不起作用,它永远不会正确映射。无论如何,我会再试一次。你应该使用SQL参数,而不是转义。这太傻了。。。通过正确的参数化解决了我所有的问题。谢谢你的建议,我会看看我能做些什么使它不难看。