这是我的代码
// 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
}
Run Code Online (Sandbox Code Playgroud)
insertOk 是false,但在数据库中插入的行包含我指定的所有信息
我手动重建查询以查看问题是否来自query.Parameters,它再次插入没有错误进入数据库但insertOk仍然是假的!我甚至添加了两个不应该为null的其他字段,但在两种情况下活动都是相同的
有任何想法吗?
ExecuteNonQuery它声称要回来了The number of rows affected..这是不正确的,因为客户端无法知道受影响的行数.文档错误地假定引擎将报告受影响的行数,但这取决于会话SET NOCOUNT状态.不要编写假定NOCOUNT始终打开的代码.如果您需要知道受影响的行数,请使用该OUTPUT子句.依赖于@@ROWCOUNT或者SET NOCOUNT状态受许多极端情况的影响,其中从一个观点或另一个观点来看价值是不正确的.
| 归档时间: |
|
| 查看次数: |
6213 次 |
| 最近记录: |