Я хочу создать форму, в которой я могу открывать таблицы в другой базе данных и удалять некоторые строки.

выглядит вот так. таблицы разные. поэтому я использую
boxGrid.Controls.Clear();
DataGridView g = GetTableGrid(databaseName);
boxGrid.Controls.Add(g);
GetTableGrid() сгенерирует новый DataGridView и заменит предыдущий.
Работает будет на пеленальном столе. но у меня возникают проблемы с удалением выбранной строки в таблице.
Что я могу сделать? Мне нужно получить только первую строчку в строке. Это первичный ключ в базе данных.





Если вы пытаетесь получить только определенный столбец (в данном случае первый) строки, по которой щелкнули мышью, вы можете сделать следующее (как я это делаю):
private void yourGridView_SelectionChanged(object sender, EventArgs e)
{
//makes sure a row is selected
if (yourGridView.SelectedCells.Count > 0)
{
int selectedrowindex = yourGridView.SelectedCells[0].RowIndex;
DataGridViewRow selectedRow = yourGridView.Rows[selectedrowindex];
//guessing you´re storing your value in a variable
string a = Convert.ToString(selectedRow.Cells["columnName"].Value);
//where columnName is the name of the column you want the value printed of...
}
}
проблема здесь в том, что вы всегда создаете новый datagridview всякий раз, когда пользователь выбирает новую таблицу (я бы предположил, что это кнопки под datagridview)
Что вы можете сделать, так это перед добавлением datagridview в свой объект boxgrid вы можете добавить к нему SelectionChanged.
boxGrid.Controls.Clear();
DataGridView g = GetTableGrid(databaseName);
g.SelectionChanged += new EventHandler(dvg_SelectionChanged);
boxGrid.Controls.Add(g);
и тогда вы можете получить то значение, которое ищете, вот так
private void dvg_SelectionChanged(object sender, EventArgs e)
{
DataGridView dvg = (DataGridView)sender;
//Check first if datagridview has data and
//Check if you are selecting a valid row
if (dvg.Rows.Count > 0 && dvg.CurrentCell.RowIndex > 0)
{
int index = dvg.CurrentCell.RowIndex;
DataGridViewRow row= dvg.Rows[index];
string mykey = Convert.ToString(row.Cells["columnName"].Value);
//Or you can store the information you've got here to some
//Variable you can use to open the form you want.
}
}
DataGridViewaGridView!! Это неправильно, сбивает с толку и приводит к неправильным ответам, тратя время впустую .. Всегда называйте вещи своим именем верно! - Так что это?DataGridView? .