Здравствуйте. Начал делать программку для сбора информации об установленном ПО на компьютерах в сети организации и хранением ее в БД, с самим механизмом сбора проблем не возникло, но возникла проблема с записью в БД из DataSet таблиц. Весь инет перекопал, не могу найти как. Помогите если кто может. Вот код, правда без цикла перебора компьютеров:
- Код: Выделить всё
Imports Microsoft.Win32
Imports System.Data.SqlClient
Public Class Form1
Public dt As New DataTable
Public ds As New DataSet
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim connectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & "Путь к БД" & ";Integrated Security=True;User Instance=True"
Dim connect As SqlConnection = New SqlConnection(connectionString)
connect.Open()
Dim adapter As SqlDataAdapter = New SqlDataAdapter
dt.Columns.Add("Установленные программы:")
dt.Columns.Add("Версия")
dt.Columns.Add("Дата установки")
dt.Columns.Add("Разработчик")
ds.Tables.Add(dt)
Dim Key, Reader As RegistryKey, DisplayName, InstallDate, DisplayVersion, Publisher, ComputerName, Compname As String
Key = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "IP компьютера").OpenSubKey("SYSTEM\ControlSet001\Control\ComputerName", False)
For Each ComputerName In Key.GetSubKeyNames
Reader = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "IP компьютера").OpenSubKey("SYSTEM\ControlSet001\Control\ComputerName\" & ComputerName, False)
Compname = Reader.GetValue("ComputerName")
dt.TableName = Compname
Key = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "IP компьютера").OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", False)
For Each DisplayName In Key.GetSubKeyNames
Reader = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "IP компьютера").OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" & DisplayName, False)
If Reader.GetValueNames().Contains("DisplayName") Then
DisplayName = Reader.GetValue("DisplayName")
DisplayVersion = Reader.GetValue("DisplayVersion")
InstallDate = Reader.GetValue("InstallDate")
Publisher = Reader.GetValue("Publisher")
dt.Rows.Add(New String(DisplayName), (DisplayVersion), (InstallDate), (Publisher))
End If
adapter.Update(ds, dt.TableName)
Next
Next
End Sub
End Class