如何检查ExecuteNonQuery上受影响的行数

时间:2014-12-09 11:04:02

标签: c# sql executenonquery

我目前正在开发一个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();
}

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

2 个答案:

答案 0 :(得分:3)

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

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

对于INSERT语句,ExecuteNonQuery method返回插入的行数。那意味着; GDR_EnumVoiePublique.ExecuteNonQuery() > 0行执行您的INSERT查询,如果成功,则返回1,如果不成功,则返回0

答案 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();
}