当前位置: 首页 > 面试题库 >

ExecuteNonQuery()返回受影响的C#的意外行数

薛扬
2023-03-14
问题内容

这是我的代码

      // SqlCommand query = new SqlCommand("INSERT INTO devis (idProposition, identreprise, tauxHoraire, fraisGenerauxMO, fraisGenerauxPiece, beneficeEtAleas, idStatut, prixUnitaireVenteMO ) VALUES(@idproposition,  @identreprise, @tauxHoraire, @fraisGenerauxMO, @fraisGenerauxPiece, @beneficeEtAleas, 1, @prixUnitaireVenteMO) ", Tools.GetConnection());
     SqlCommand query = new SqlCommand("INSERT INTO devis (idProposition, identreprise, tauxHoraire, fraisGenerauxMO, fraisGenerauxPiece, beneficeEtAleas, idStatut, prixUnitaireVenteMO, alerteEntrepriseEnvoyee,fraisDeplacement ) VALUES(1051,  85, 20, 2, 2, 2.2, 1, 88,0,-1) ", Tools.GetConnection());

    //query.Parameters.AddWithValue("idproposition", this.ID);
    //query.Parameters.AddWithValue("identreprise", competitor.ID);
    //query.Parameters.AddWithValue("tauxHoraire", competitor.CoefTauxHoraire);
    //query.Parameters.AddWithValue("fraisGenerauxMO", competitor.CoefFraisGenerauxMO);
    //query.Parameters.AddWithValue("fraisGenerauxPiece", competitor.CoefFraisGenerauxPiece);
    //query.Parameters.AddWithValue("beneficeEtAleas", competitor.CoefBeneficeEtAleas);
    //query.Parameters.AddWithValue("prixUnitaireVenteMO", Math.Round(competitor.CoefTauxHoraire * competitor.CoefFraisGenerauxMO * competitor.CoefBeneficeEtAleas, 2));
 bool insertOK = (query.ExecuteNonQuery() == 1);
 if (insertOK)
 {
    // DO SOMETHING
 }

insertOk 为假,但在数据库中插入该行以及我指定的所有信息

我手动重建查询以查看问题是否来自查询。参数,它再次无错误地插入数据库,但insertOk仍然为false!我什至还添加了另外两个不应该为空的字段,但是两种情况下的活动都是相同的

有任何想法吗?


问题答案:

对于UPDATE,INSERT和DELETE语句,返回值是受命令影响的行数。

当要插入或更新的表上存在触发器时,返回值包括受插入或更新操作影响的行数以及受一个或多个触发器影响的行数。对于所有其他类型的语句,返回值为-1。如果发生回滚,则返回值也为-1。



 类似资料:
  • 问题内容: 我目前正在从事C#项目,并且正在运行一个插入查询,该查询也同时进行选择,例如: 有没有一种方法可以查看此查询期间插入了多少行? 问题答案: -返回受影响的行数。

  • 问题内容: 我有这个查询: 我的表是,我有一列名为。我要更新的是名为“ yes” 的列。 知道我在做什么错吗?当我返回查询时,它说受影响的0行。 问题答案: 如苯丙胺和Yada所建议,如果您的电话号码在表中,请使用进行检查。 但是请记住:如果所讨论的行的值已经是“是”,则mysql不会更改该值,因此将返回“受影响的0行”。因此,请务必同时检查

  • 问题内容: 我正在使用MySQL数据库并通过Java访问它。 上面的update语句工作正常,但是我想获取此语句影响的行数。请问这可能吗? 问题答案: 在PreparedStatement上调用executeUpdate()应该返回一个整数,即更新的记录数。

  • 本文向大家介绍C#中ExecuteNonQuery()返回值注意点分析,包括了C#中ExecuteNonQuery()返回值注意点分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#中ExecuteNonQuery()返回值注意点。对于C#数据库程序设计有一定的借鉴价值。分享给大家供大家参考之用。具体分析如下: 首先,在查询某个表中是否有数据的时候,我们通常用ExecuteNonQue

  • 问题内容: 如何访问受以下因素影响的行数: 问题答案: 尝试使用: 将包含一个元素为的元组。因此找到行数: 或者,如果您愿意一口气做到这一点: PS。最好在可能的情况下使用参数化的参数,因为它可以在需要时自动为您引用参数,并防止sql注入。 参数化参数的正确语法取决于您的python /数据库适配器(例如mysqldb,psycopg2或sqlite3)。它看起来像

  • 大家好。 受影响的0行 当我看到这个结果时,我想‘有语法错误吗?’但是,没有。更新查询工作正常。Numtable的数据从(1,2)更改为(3,4)。 我还发现了这个。我删除了“开始事务;”和'COMMIT'语句。并再次执行updateNum SP。结果是...