C# SQLite引发异常,但CommandText没有错误

C# SQLite引发异常,但CommandText没有错误,c#,sqlite,C#,Sqlite,我想查询我的应用程序的一些数据库信息,但是,SQLiteException取笑我 这是来自异常的消息 SQL逻辑错误或缺少数据库 接近“顺序”:语法错误 我在SQLite浏览器上测试了命令文本,它工作得很好。但在代码中,异常会不断抛出 下面是我使用的一些代码 // Database Requesting Point // using(var DB = new SQLiteHandler()) skipped var QueryText = string.Format(

我想查询我的应用程序的一些数据库信息,但是,SQLiteException取笑我

这是来自异常的消息

SQL逻辑错误或缺少数据库

接近“顺序”:语法错误

我在SQLite浏览器上测试了命令文本,它工作得很好。但在代码中,异常会不断抛出

下面是我使用的一些代码

    // Database Requesting Point
    // using(var DB = new SQLiteHandler()) skipped

    var QueryText = string.Format(
        "SELECT seq, title, written_date FROM pblog_board WHERE category={0} ORDER BY seq DESC LIMIT {1}"
        , Target, Requests
        ); // Complete Command Text
    var Reader = DB.ExecuteReader(QueryText, null);
。。。这是ExecuteReader(字符串,参数[])和Query(字符串,参数[])

公共SQLiteDataReader ExecuteReader(字符串CommandText,CommandParameter[]参数) { var命令=查询(CommandText,参数); return命令.ExecuteReader(); } 专用SQLiteCommand查询(字符串CommandText,CommandParameter[]参数) { SQLiteCommand=newsqlitecommand(_currentConnection); Command.CommandType=System.Data.CommandType.Text; Command.CommandText=CommandText; if(参数!=null) 对于(int i=0;i
我希望这不是SQLite库的小故障。我编码错了,对吗

您的问题可能会影响参数
目标
请求
的值。对于成功的直接DB调用,您有什么建议


您应该参数化查询,而不是使用
string.Format(..)
来插入值。通过使用
string.Format(..)

可以,我参数化了我的查询。我没有看到有注射漏洞:)。。。。问题解决了<代码>目标和
请求
出现问题,因为它们
为空
!非常感谢。
public SQLiteDataReader ExecuteReader(string CommandText, CommandParameter[] Parameters)
{
    var Command = Query(CommandText, Parameters);
    return Command.ExecuteReader();
}

private SQLiteCommand Query(string CommandText, CommandParameter[] Parameters)
{
    SQLiteCommand Command = new SQLiteCommand(_currentConnection);
    Command.CommandType = System.Data.CommandType.Text;
    Command.CommandText = CommandText;

    if (Parameters != null)
        for (int i = 0; i < Parameters.Length; i++)
        {
            Command.Parameters.Add(new SQLiteParameter(
                    parameterName: Parameters[i].ParameterName,
                    value: Parameters[i].ParameterValue
                ));
        }

    return Command;
}