Member 12245539 Ответов: 2

Как заполнить значения из его идентификатора в datagridview winform C#


Существует один Datagridview. Он имеет три колонки, такие как

FruitId | FruitPrice | FruitName
1 | 100 |
2 | 200 |
3 | 300 |

эти значения берутся из table_FruitPrice
Теперь, наконец, я хочу отобразить в третьем столбце FruitName его FruitId, который представлен в первом столбце, и FruitName будет исходить из Table_FruitName.

метод соединения может работать, и он работает. Но я хочу отобразить Fruitname в третьем столбце, если я нажму на кнопку.

Пожалуйста, сэр, помогите...

Что я уже пробовал:

..................................

Karthik_Mahalingam

в чем же проблема

Member 12245539

DataGridview отображается во время события FormLoad, а Fruitname в это время пуст.
FruitId | FruitPrice | FruitName
1 | 100 |
2 | 200 |
3 | 300 |

После загрузки формы я хочу заполнить FruitName из другой таблицы, идентификатор которой уже присутствует в Datagridivew. Если я нажму на кнопку.

Karthik_Mahalingam

как вы получаете данные &ГТ;?
объект DataTable?

Member 12245539

Через Набор Данных.....

Karthik_Mahalingam

post ur код

Member 12245539

DataSet ds = новый набор данных();
частный недействительными методе form1_load(объект отправителя, EventArgs в электронной)
{
SqlConnection con = new SqlConnection ("источник данных=.; начальный каталог=TOOOOOO;Интегрированная безопасность=True");
SqlDataAdapter sda = new SqlDataAdapter ("select * from Table_Sale", con);
ПДД.Заполнить(ДС);
dataGridView1.Источник данных = ДС.Таблицы[0];
}

Karthik_Mahalingam

почему бы вам не использовать join для получения данных напрямую, как указано в решении 1 ?
есть смысл ?

Member 12245539

Возможно ли передать значение в Gridview?????????

Karthik_Mahalingam

выложу вам весь код.

0x01AA

Вы можете выбрать все столбцы в FormLoad и установить столбец FruitName Visible= false. Хорошо, небольшой недостаток заключается в том, что он не показывает заголовок столбца до того, как вы установите значение Visible в true.

2 Ответов

Рейтинг:
2

Maciej Los

Вы должны получить соответствующие данные из базы данных:

SELECT fp.FruitId, fp.FruitPrice, fn.FruitName
FROM table_FruitPrice AS fp INNER JOIN Table_FruitName AS fn ON fp.FriutId = fn.FruitId


Как получить данные? Пожалуйста, смотрите:
Получение данных с помощью DataReader[^]
Пошаговое руководство: создание простого приложения данных с помощью ADO.NET[^]


Рейтинг:
2

0x01AA

Не очень хорошее решение, но оно должно сделать свою работу и дать вам некоторые идеи.

FormLoad:
// Your SELECT will be
SELECT fp.FruitId, fp.FruitPrice, fn.FruitName, '' AS FruitNameEmpty
FROM table_FruitPrice AS fp INNER JOIN Table_FruitName AS fn ON fp.FriutId = fn.FruitId
// Don't show the "real" fruitname
dataGridView.Columns[2].Visible= false;
// Adjust header text for the empty fruitname column
dataGridView.Columns[3].HeaderText= dataGridView.Columns[2].HeaderText;

OnButtonClick:
// E.g. Toggle visibility
dataGridView.Columns[2].Visible= !dataGridView.Columns[2].Visible;
dataGridView.Columns[3].Visible= !dataGridView.Columns[3].Visible;

Примечание: Вы должны заменить прямой адрес столбца (например, столбец[2] и т. д.) поиском столбца по имени Поля.

Более приятным решением, но и чем-то большим, чтобы научиться это делать, будет реализация события Cellpainting DataGridViews, которое рисует столбец в соответствии с вашим состоянием.

Надеюсь, это поможет.