每當執行批處理SQL,你應該被通知有多少行進行了修改/插入/更新,無論是從您例如返回值SqlCommand.ExecuteNonQuery()
電話:
Private Boolean UpdateTable()
{
int rowsUpdated = 0;
string sql = "IF EXISTS(Select A.CNum FROM TABLEA A, TABLEB B WHERE A.CID= B.CID AND A.CNum is NULL AND [email protected]) BEGIN ..... END"
using(SqlConnection con = new SqlConnection("your-connection-string-here"))
{
using(SqlCommand cmd = new SqlCommand(sql, con))
{
con.Open();
rowsUpdated = cmd.ExecuteNonQuery();
con.Close();
}
}
return (rowsUpdated > 0);
}
,或者你可以在UPDATE
後查詢您的SQL語句@@ROWCOUNT
屬性:
...
BEGIN
UPDATE ........
DECLARE @Updated INT
SELECT @Updated = @@ROWCOUNT
END
您可以返回值,或檢查的大於零或任何你的值想做。
如果使用關鍵字SET NOCOUNT ON,返回通過RowsAffected = obj.ExecuteNonQuery()影響的行可能會導致-1值。堅持通過OUTPUT參數或SELECT RowsAffected = @@ ROWCOUNT記錄集來返回計數可能會更好 - 以防萬一您使用SET NOCOUNT ON。 如果您要檢索以下RowsUpdated版本,請不要使用SET NOCOUNT ON關鍵字,但恕我直言,我總是打開SET NOCOUNT ON;因爲在我的標準和最佳實踐書中,我一直都在使用它,所以它的價格非常昂貴。這就是爲什麼我想警告你。 – SnapJag 2010-07-29 22:49:47