如何检查执行非查询上受影响的行数

本文关键字:影响 查询 何检查 检查 执行 | 更新日期: 2023-09-27 18:33:36

我目前正在处理一个 C# 项目,正在运行插入查询

while (reader.Read())
{
    SqlCommand GDR_EnumVoiePublique = new SqlCommand("INSERT INTO GDR_EnumVoiePublique(VP_Id,VP_Nom,OVP_Id,LVP_Id,GVP_Id,Mun_Id,VP_Description)VALUES(@VP_Id,@VP_Nom,@OVP_Id,@LVP_Id,@GVP_Id,@Mun_Id,@VP_Description)", connection);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@VP_Id", Guid.NewGuid());
    GDR_EnumVoiePublique.Parameters.AddWithValue("@VP_Nom", VP_Nom);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@OVP_Id", OVP_Id == null ? (object)DBNull.Value : OVP_Id);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@LVP_Id", LVP_Id == null ? (object)DBNull.Value : LVP_Id);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@GVP_Id", GVP_Id == null ? (object)DBNull.Value : GVP_Id);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@Mun_Id", Mun_Id);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@VP_Description", VP_Description);
    GDR_EnumVoiePublique.ExecuteNonQuery();
    //count = (Int32)GDR_EnumVoiePublique.Executescalar();
   //countResult = GDR_EnumVoiePublique.ExecuteScalar();
}

有没有办法查看在此查询期间插入了多少行?

如何检查执行非查询上受影响的行数

好吧,您可以使用一个简单的计数器。

int counter = 0;
while(reader.Read())
{
   ...
   ...
   if(GDR_EnumVoiePublique.ExecuteNonQuery() > 0)
   {
      counter++;
   }
}

对于INSERT语句,ExecuteNonQuery方法返回 inserterd 的行数。这意味着; GDR_EnumVoiePublique.ExecuteNonQuery() > 0行执行您的 INSERT 查询,如果成功,则返回 1 ,如果不是,则返回 0

ExecuteNonQuery() 返回SET NOCOUNT OFF时插入的行数。

Int affectedRows;
while (reader.Read())
{
    SqlCommand GDR_EnumVoiePublique = new SqlCommand("INSERT INTO GDR_EnumVoiePublique(VP_Id,VP_Nom,OVP_Id,LVP_Id,GVP_Id,Mun_Id,VP_Description)VALUES(@VP_Id,@VP_Nom,@OVP_Id,@LVP_Id,@GVP_Id,@Mun_Id,@VP_Description)", connection);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@VP_Id", Guid.NewGuid());
    GDR_EnumVoiePublique.Parameters.AddWithValue("@VP_Nom", VP_Nom);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@OVP_Id", OVP_Id == null ? (object)DBNull.Value : OVP_Id);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@LVP_Id", LVP_Id == null ? (object)DBNull.Value : LVP_Id);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@GVP_Id", GVP_Id == null ? (object)DBNull.Value : GVP_Id);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@Mun_Id", Mun_Id);
    GDR_EnumVoiePublique.Parameters.AddWithValue("@VP_Description", VP_Description);
    affectedRows += GDR_EnumVoiePublique.ExecuteNonQuery();
}