Таблица + БД + реестр - Visual Basic .NET
Формулировка задачи:
Приветствую всех единомышленников! С наступающим праздником!
Помогите в дилемме, сам не могу решиться, а на что решился, не могу победить:
Есть:
есть в реестре раздел, в нём 30 подразделов с 22-мя одинаковыми ключами.
Надо:
- на форме отобразить таблицу, в колонках - 30 подразделов, в строках - 22 ключа;
- после изменений в таблице значения какого-нибудь ключа, запись в реестр.
Для этого, как я понимаю, нужна промежуточная БД. Пробовал и Access и XML и INI и Excel, всё приемлемо.
Чтение-запись реестра тоже не вызывает трудностей.
А вот с самой таблицей - беда! B VB6 дружил с DataGrid и вроде бы с GridView, т.е. более простыми вариантами таблиц. Там было как то совсем просто - прямое соответствие ячейки таблицы и ячейки БД.
Но в VB.NET2010, а думаю и в остальных .NET версиях тоже, без альтернативы: GridView только при разработке WEB-проекта активна, а с DataGrid что то вообще непонятно, т.е. не могу разобраться. DataGridView считаю слишком громоздкой и навороченной (может быть и зря), но вот как в ней организовать сохранение изменений - проблема. Причём не хотелось бы дополнительных окошек типа TextBox'ов, а просто изменение-сохранение, в крайнем случае через кнопку Save.
Подскажите, пожалуйста, как лучше решить эту задачку, а ещё лучше с примерами. Ещё раз уточню - проблема с сохранением в БД изменений значений ячеек в таблице + одновременность с сохранением в реестре.
Самый идеальный вариант - 660 тектбоксов с прямой привязкой к соответствующим ключам реестра + 52 лабела
но как то не вдохновляет такой вариант...
Решение задачи: «Таблица + БД + реестр»
textual
Листинг программы
Private pthReestr(), nameCol(), namePrp() As String Private Sub Form3_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load pthReestr={...} 'подразделы nameCol={...} 'сокращения от подразделов namePrp={...} 'ключи setDGV() End Sub Private Sub setDGV() With Me.DataGridView1 .AllowUserToDeleteRows = False .AllowUserToAddRows = False .AllowUserToOrderColumns = False .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells .SelectionMode = DataGridViewSelectionMode.FullRowSelect 'заголовки колонок (подразделы) For i = 0 To 29 .Columns.Add(nameCol(i), nameCol(i)) Next 'заголовки строк (ключи) .RowHeadersWidth = 100 For i = 0 To 21 .Rows(i).HeaderCell.Value = namePrp(i) Next For i = 0 To 29 For j = 0 To 21 .Rows(j).Cells(i).Value = My.Computer.Registry.GetValue(pthReestr(i), namePrp(j), Nothing) Next Next End With End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д