ExecuteNonquery returns 0

本文关键字:returns ExecuteNonquery | 更新日期: 2023-09-27 18:27:54

在我的c#应用程序中,我试图删除一条记录,并返回executenoquery的结果,以检查删除是否正确,如下所示。

rowsAffected = db.ExecuteNonQuerySQL(
    @"DELETE FROM relation WHERE parent_itemid = " + SourceThingId + " AND " +
    "     child_itemid = " + ThingId + " AND " +
    "     relation_typeid = " + RelationTypeId);

执行查询定义如下,

using (SQLiteTransaction dbtrans = conn.BeginTransaction())
{
    SQLiteCommand cmd = conn.CreateCommand();
    cmd.CommandText = sqlExpr;
    cmd.CommandType = CommandType.Text;
    ireturn = cmd.ExecuteNonQuery();
    dbtrans.Commit();
}
return ireturn;

但当我执行它时,它没有删除,值返回0。使用的数据库是sqlite。

有人知道为什么会发生这种事吗。请帮忙。

提前Thanx。

ExecuteNonquery returns 0

当然,听起来就像唱片根本不在那里。您应该通过使用相同的查询运行SELECT *来调试它,并查看是否返回任何结果。

您还应该停止将值直接放入SQL,而是使用参数化SQL。这将更好地分离代码和数据,避免SQL注入攻击,并避免转换问题(尤其是日期/时间值)。