2009-09-26 3 views
1

У меня есть datagridview, источником которого является datatable. Есть столбцы заказов и продуктов питания. Я вставляю новые значения в это datagridview и удаляю из таблицы. когда я выбираю одну строку и удаляю ее, выбранный цвет перемещается в верхнюю часть, и если я хочу удалить еще один заказ для одной и той же еды, я должен отбирать ее каждый раз. Как я могу решить эту проблему? Кстати, я обновляю datagridview после вставки или удаления из sql, например:Обновление datagridview

ds.Clear(); 
da.Fill(ds); 
dataGridView2.DataSource = ds.Tables[0]; 

Да и ds определяется следующим образом;

da = new SqlDataAdapter(sqlcommand); 
ds = new DataSet(); 

ответ

0

Возможно, если вы храните индекс текущего выбора в переменную перед удалением, а затем перейти к этому показателю после вашего DataSet был заполнен.

+0

Как переместить этот индекс? – EEE

+0

Если я правильно помню, как DataGridView.DataSource, так и DataSet.Tables [0] будут совместно использовать один и тот же refenrece. Тогда, если это так, перемещение DataSet.Tables [0] .Rows [savedIndex] должно выполнить задание. В противном случае в Windows Form также есть объект, который принадлежит экземпляру Form, который является BindingContext [BindingSource/DataSource], что позволит вам использовать CurrencyManager, затем через этот валютный менеджер вы сможете получить позицию индекс текущего выбранного элемента/строки в источнике данных. –

+0

Я думал, что вы хотите сделать это из источника данных. Но действительно в любое время вы можете получить коллекцию строк DataGridView и т. Д., Как указано в ссылке, которую вы опубликовали. Важно то, что вы достигли того, что хотели. знак равно –

Смежные вопросы