Я пытаюсь получить столбцы на основе их соответствующего ключа.
"Выбрать * из ромба, где p_Id =" + p_Id
Я следовал примеру MSDN, и они делали это так:
CurrencyManager cm = ((CurrencyManager)this.BindingContext[myDatabaseDataSet, "Items.ItemDiamond"]);
IBindingList list = (IBindingList)cm.List;
, но связанные данные представления списка возвращают только данные p_Id = 1. Что не так?
Полный код:
private void Viewdiamonds(int p_Id)
{
this.Cursor = Cursors.WaitCursor;
frmDiamond frmd = new frmDiamond();
CurrencyManager cm = ((CurrencyManager)this.BindingContext[myDatabaseDataSet, "Items.ItemDiamond"]);
IBindingList list = (IBindingList)cm.List;
frmd.ShowDialog(p_Id, this, list);
this.Cursor = Cursors.Default;
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 1 && e.RowIndex != -1 && !dataGridView1.Rows[e.RowIndex].IsNewRow)
{
DataGridViewCell cell = this.dataGridView1[e.ColumnIndex - 1, e.RowIndex];
int p_Id = Convert.ToInt32(cell.Value);
this.Viewdiamonds(p_Id);
}
}
Edit:
У меня есть два связанных столбца, Предметы и Алмаз. У меня есть элемент управления сеткой данных, который отображает данные из таблицы элементов. Я добавил столбец типа LinkView, поэтому, когда пользователь нажимает кнопку ViewDiamond, появляется новая форма и отображаются алмазы, связанные с этим элементом. Я посмотрел на образец элемента управления MSDN DataGridView, и они реализовали это, используя приведенный выше код. Я сделал некоторые изменения в коде, чтобы соответствовать моему приложению. Что не так с кодом выше? Потому что кажется, что он не может отображать данные в соответствии с их относительным p_Id. Или я думаю, что с p_Id что-то не так, независимо от его значения, диспетчер валют, похоже, получает только данные, соответствующие p_Id = 1.
Надеюсь, это прояснило проблему.