Таблица + БД + реестр - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы