Как получить значение выбранной ячейки таблицы данных, заполненной данными SQL? - PullRequest
0 голосов
/ 05 июня 2019

Мне нужно получить значение выбранной ячейки в сетке данных, когда пользователь щелкает по ней.

Я пытался перенести значение в текстовое поле, чтобы проверить событие нажатия, но когда я нажимаю наэто, текстовое поле не показывает значение ячейки.

 private void btnsync_Click(object sender, EventArgs e) //Obtiene el catálogo de presupuestos

    {
        SqlConnection conn = new SqlConnection(@"Data Source=.\MYINSTANCE;Integrated Security=True;MultipleActiveResultSets=True");
        string cmd = "SELECT name FROM master.dbo.sysdatabases WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb');";

        var dataAdapter = new SqlDataAdapter(cmd, conn);
        var commandBuilder = new SqlCommandBuilder(dataAdapter);
        var ds = new DataSet();
        dataAdapter.Fill(ds);
        dataGridView1.ReadOnly = true;
        dataGridView1.DataSource = ds.Tables[0];

    }

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        if(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
        {
            dataGridView1.CurrentRow.Selected = true;
            txtpresup.Text = dataGridView1.Rows[e.RowIndex].Cells["name"].FormattedValue.ToString();
        }


    }

Я ожидаю, что текстовое поле "textpresup" заполнено значением выбранной ячейки.

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Решено

  private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dataGridView1.SelectedCells.Count > 0)
            {
                int selectedrowindex = dataGridView1.SelectedCells[0].RowIndex;

                DataGridViewRow selectedRow = dataGridView1.Rows[selectedrowindex];
                string value = selectedRow.Cells["name"].Value.ToString();

                txtpresup.Text = value;
            }
        }
    }
0 голосов
/ 05 июня 2019

То, что вы ищете, это

DataGridView.SelectedRows[0].Cells[0].Value.ToString();

Не забудьте изменить Cells[0] либо на индекс столбца (например, Cells[4]), либо на имя столбца (например, Cells["Name"])

Однако, если этот код срабатывает и ячейка / строка не выбраны, вы, скорее всего, получите null reference error

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...