简体   繁体   中英

Can't update information in datagridview

截图

This is datagrid view, which is connected to access data base. There is a column called "Status" (you can see it in red square). I would like to update the text in it (Arrival) to text (In House) by pressing the "Check in button" in selected row . How can i do this? Thanks in advance.

 private void searchbd_Click(object sender, EventArgs e)
        {
            if (tabControl1.SelectedTab == tabControl1.TabPages["tabPage1"])
            {
                try
                {

                    string dtparrival = this.dateTimePicker4.Text.ToString();
                    string statusarrival = "Arrival";

                    string strSql = "SELECT * FROM guestreg WHERE g_status = '" + statusarrival + "' AND g_ad = '" + dtparrival + "'";


                    OleDbCommand cmd = new OleDbCommand(strSql, connection);
                    connection.Open();
                    cmd.CommandType = CommandType.Text;
                    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
                    DataTable scores = new DataTable();
                    da.Fill(scores);
                    arrivaldgv.DataSource = scores;
                    /**************************************************************************/
                    this.arrivaldgv.Columns[0].Visible = false;
                    this.arrivaldgv.Columns["g_totalrate"].Visible = false;
                    this.arrivaldgv.Columns["u_added"].Visible = false;
                    this.arrivaldgv.Columns["u_timeadded"].Visible = false;
                    /**************************************************************************/
                    this.arrivaldgv.Columns["g_name"].HeaderText = "Name";  //1
                    this.arrivaldgv.Columns["g_surname"].HeaderText = "Surname"; //2
                    this.arrivaldgv.Columns["g_company"].HeaderText = "Company"; //3
                    this.arrivaldgv.Columns["g_ad"].HeaderText = "Arrival Day"; //4
                    this.arrivaldgv.Columns["g_dd"].HeaderText = "Departure Day"; //5
                    this.arrivaldgv.Columns["g_amountofdays"].HeaderText = "Amount of Days"; //6
                    this.arrivaldgv.Columns["g_na"].HeaderText = "Number of Adults"; //7
                    this.arrivaldgv.Columns["g_amountofdays"].HeaderText = "Amount of Days"; //8
                    this.arrivaldgv.Columns["g_room"].HeaderText = "Room Number"; //9
                    this.arrivaldgv.Columns["g_rate"].HeaderText = "Rate"; //10
                    this.arrivaldgv.Columns["g_totalrate"].HeaderText = "Total Rate"; //11
                    this.arrivaldgv.Columns["g_info"].HeaderText = "Information"; //12
                    this.arrivaldgv.Columns["u_added"].HeaderText = "User"; //13
                    this.arrivaldgv.Columns["u_timeadded"].HeaderText = "Time"; //14
                    this.arrivaldgv.Columns["g_status"].HeaderText = "Status"; //15
                    /**************************************************************************/
                    connection.Close();
                }
                catch
                {
                    MessageBox.Show("Please, try again.");
                }

I guess, you only want to update value in dataGridView cell, not value in database table.

The simplest way is:

    private void CheckInButton_Click(object sender, EventArgs e)
    {
        int row = dataGridView1.CurrentCell.RowIndex;
        int col = dataGridView1.CurrentCell.ColumnIndex;

        dataGridView1[col, row].Value = "In House";
    }

You can add some validation of course. For example: Check if any cell is selected.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM