簡體   English   中英

每當我更新gridview時如何將今天的日期更新到數據庫

[英]How to update today date to database whenever i update the gridview

我有一張名為EVENT_ANNOUNCE的表。 單擊gridview上的“編輯”按鈕之后,並單擊“更新”按鈕后,我想將今天的日期更新為數據庫中的MODIFIEDDATE列字段。 如果單擊“取消”,則它不會將今天的日期更新為MODIFIEDDATE列字段。 我只想更新。

在此處輸入圖片說明

在此處輸入圖片說明

protected void grdEvent_RowEditing(object sender, GridViewEditEventArgs e)
{
    grdEvent.EditIndex = e.NewEditIndex;
    bindEventGridView();
}

protected void grdEvent_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    int selectedRow = e.RowIndex;   //get selected row
    //  get product id from data key
    int id = (int)grdEvent.DataKeys[selectedRow].Value;

    //  get current grid view row
    GridViewRow row = (GridViewRow)grdEvent.Rows[selectedRow];
    TextBox eventtype = (TextBox)row.FindControl("txtEventType");
    //  find text box for txtPrice
    TextBox eventname = (TextBox)row.FindControl("txtEventName");
    TextBox startdate = (TextBox)row.FindControl("txtStartDate");
    TextBox enddate = (TextBox)row.FindControl("txtEndDate");
    //  Remove $ sign
    string strEventType = eventtype.Text;
    string strEventName = eventname.Text;
    string strStartDate = startdate.Text;
    string strEndDate = enddate.Text;
    DateTime datStartDate;
    DateTime datEndDate;
    if (DateTime.TryParseExact(strStartDate, new string[] { "dd/MM/yyyy" },
                           System.Globalization.CultureInfo.InvariantCulture,
                           System.Globalization.DateTimeStyles.None, out datStartDate)
&&
DateTime.TryParseExact(strEndDate, new string[] { "dd/MM/yyyy" },
                           System.Globalization.CultureInfo.InvariantCulture,
                           System.Globalization.DateTimeStyles.None, out datEndDate)
   )
    {
updateEventGridviewRecord(id, strEventType, strEventName, datStartDate, datEndDate);
    }
        /*
         || DateTime.TryParseExact(strEndDate, new string[] { "dd/MM/yyyy" },
                           System.Globalization.CultureInfo.InvariantCulture,
                           System.Globalization.DateTimeStyles.None, out datEndDate
         */

    else
    {
        lblError.Visible = true;
        lblError.Text = "Invalid Date";
        lblSuccess.Visible = false;
    }

}

private void updateEventGridviewRecord(int id, string strEventType, string strEventName, DateTime datStartDate, DateTime datEndDate)
{
    try
    {
        string strConnectionString = ConfigurationManager.ConnectionStrings["ProjectConnectionString"].ConnectionString;
        SqlConnection myConnect = new SqlConnection(strConnectionString);

        string strCommandText = "UPDATE EVENT_ANNOUNCE SET [EVENTTYPE]=@EVENTTYPE, [EVENTNAME]=@EVENTNAME, [STARTDATE]=@STARTDATE, [ENDDATE]=@ENDDATE WHERE [ID]=@ID";

        SqlCommand cmd = new SqlCommand(strCommandText, myConnect);
        cmd.Parameters.AddWithValue("@id", id);
        cmd.Parameters.AddWithValue("@EVENTTYPE", strEventType);
        cmd.Parameters.AddWithValue("@EVENTNAME", strEventName);
        cmd.Parameters.AddWithValue("@STARTDATE", datStartDate);
        cmd.Parameters.AddWithValue("@ENDDATE", datEndDate);
        myConnect.Open();

        int result = cmd.ExecuteNonQuery();

        if (result > 0)
        {
            lblSuccess.Visible = true;
            lblSuccess.Text = "Record updated!";
            lblError.Visible = false;
        }
        else
        {
            lblSuccess.Visible = true;
            lblError.Text = "Update fail";
            lblError.Visible = false;
        }

        myConnect.Close();


        //Cancel Edit Mode
        grdEvent.EditIndex = -1;
        bindEventGridView();
    }

    catch
    {
        lblError.Visible = true;
        lblError.Text = "Please Enter Approximate data";
        lblSuccess.Visible = false;
    }
}

更新任何記錄時設置MODIFIEDDATE = GETDATE()

將您的SQL更新語句更改為

UPDATE EVENT_ANNOUNCE SET [EVENTTYPE]=@EVENTTYPE, [EVENTNAME]=@EVENTNAME, [STARTDATE]=@STARTDATE, [ENDDATE]=@ENDDATE, MODIFIEDDATE  = GETDATE() WHERE [ID]=@ID

在查詢中使用

UPDATE EVENT_ANNOUNCE SET [EVENTTYPE]=@EVENTTYPE, [EVENTNAME]=@EVENTNAME, `[STARTDATE]=@STARTDATE, [ENDDATE]=@ENDDATE, MODIFIEDDATE  = GETDATE() WHERE [ID]=@ID`

要么

在SqlParameter中

 cmd.Parameters.AddWithValue("@MODIFIEDDATE", DateTime.Now);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM