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