2016-07-07 14 views
1

ユーザーをアプリケーションに対して匿名で承認するよりもユーザーを停止する必要があります。データを上書きするのを止めるために働く場所はどこに置かれていますが、すでに承認されたレコードは更新されていないというラベルを表示する必要があります。行が更新されているかどうかを確認する方法

SQLクエリが更新されたかどうかを知り、その情報を取得してIf文を実行できるようにする方法。

If row updated then 
    label.text = "data approved" 
else 
    label.text = "You can not approve this as it's already approved" 


CheckBox ckb = (CheckBox)sender; 
     GridViewRow row = (GridViewRow)ckb.Parent.Parent;   //Get row selected 
     int idx = row.RowIndex; 

     //Get activity number ID for update query 
     Label lblDHActivityNoApp = (Label)row.Cells[0].FindControl("lblDHActivityNoApp"); 
     string Number = lblDHActivityNoApp.Text.ToString(); 

     string connectionString = ConfigurationManager.ConnectionStrings["PlusConnectionString"].ConnectionString; 
     string UpdateSql = "UPDATE Activities SET Status = @Status, [email protected], [email protected] WHERE ApprovedBy IS NULL and ([email protected])"; 
     //Create SQL connection 
     SqlConnection con = new SqlConnection(connectionString); 

     //Create SQL Command And Sql Parameters 
     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = con; 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = UpdateSql; 

     SqlParameter Status = new SqlParameter("@Status", SqlDbType.VarChar, 40); 
     Status.Value = "Approved"; 
     cmd.Parameters.Add(Status); 

     SqlParameter ApprovedDate = new SqlParameter("@ApprovedDate", SqlDbType.VarChar, 50); 
     DateTime myDateTime = DateTime.Now; ; 
     ApprovedDate.Value = myDateTime.ToString("dd/MM/yy HH:mm:ss"); 
     cmd.Parameters.Add(ApprovedDate); 

     SqlParameter ApprovedBy = new SqlParameter("@ApprovedBy", SqlDbType.VarChar, 40); 
     ApprovedBy.Value = (string)Session["Username"]; 
     cmd.Parameters.Add(ApprovedBy); 

     SqlParameter No = new SqlParameter("@No", SqlDbType.VarChar, 50); 
     No.Value = Number; 
     cmd.Parameters.Add(No); 

     try 
     { 
      con.Open(); 
      cmd.ExecuteNonQuery(); 
      gbDHdetailsApp.DataBind(); //Reloads gridview with checked data  
     } 

     catch (SqlException ex) 
     { 
      string errorMessage = "Not approved, please contact support"; 
      errorMessage += ex.Message; 
      throw new Exception(errorMessage); 
     } 

     finally 
     { 
      con.Close(); 
     } 

答えて

1

ExecuteNonQuery()は、影響を受けた行数を返し、戻り値の型INTを持っているので、あなたは

int rowsAffected = cmd.ExecuteNonQuery(); 

if(rowsAffected > 0) 
{ 
    // do something 
} 
のように行うことができます
4

ExecuteNonQuery影響を受ける行の数を返します。これが0の場合はExceptionを投げることができます。

関連する問題