2011-10-04 65 views
3

我有下面的代码,其中对于每一个serialnumber我在tblSerials表中搜索并从那里删除它,但事情是,记录可能会或可能不存在,所以我需要知道该记录是否真的被删除,所以我可以更新另一个包含连续数量的表,其中qty = qty - 1(在删除的情况下)。如何知道一条记录是否被删除使用c#

SqlConnection conn = new SqlConnection(connString); 
for (int i = 0; i <= aSNs.Count()-1; i++) 
{ 
    string query = "delete from tblSerials where SerialNumber='" +aSNs[i]+ "'"; 
    SqlCommand cmd = new SqlCommand(query, conn); 

    try 
    { 
     conn.Open(); 
     cmd.ExecuteNonQuery(); 
    } 
    catch (Exception ex) 
    { 
     throw (ex); 
    } 
    finally 
    { 
     cmd.Dispose(); 
     conn.Close(); 
    } 
} 

所以我的问题是,如果有什么办法知道,如果一个记录要么从表中删除或不是一次的ExecuteNonQuery()发生。

+2

[万岁,免费SQL注入给大家!(http://bobby-tables.com/) – Bobby

回答

10
cmd.ExecuteNonQuery(); 

这将返回受影响的行数。

所以,如果你想知道有多少记录被删除,你需要

int deletedRows = cmd.ExecuteNonQuery(); 
+0

真棒!非常感谢你@Daok – Somebody

1
int numRowsAffected = cmd.ExecuteNonQuery(); 
if (numRowsAffected > 0) 
{ 
    // record deleted 
} 
else 
{ 
    // record not deleted 
} 
+0

谢谢SixHouse,Daok已经回答了这个问题。 – Somebody