Witam, piszę programik, który ma pobierać z bazy access dane i potem gdy kliknę w jakiś wiersz 2 razy, ma pojawić się drugie okno i mogę w nim zmieniać dane, bazę wczytałem, przy probie kliknięcia 2 razy w wiersz wyskakuje błąd:
//"Indeks był spoza zakresu. Musi mieć wartość nieujemną i mniejszą niż rozmiar kolekcji.
Nazwa parametru: index"//
czytałem różne sposoby jak to ominąć ale żaden nie daje rezultatu, mój kod:
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.Odbc
Imports System.Data.DataTable
Public Class Form1
Dim provider As String
Dim dataFile As String
Dim connString As String
Public r As Integer
Dim myConnection As OleDbConnection = New OleDbConnection
Dim ds As DataSet = New DataSet
Dim da As OleDbDataAdapter
Dim tables As DataTableCollection = ds.Tables
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
provider = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source ="
dataFile = "C:\Documents and Settings\wojtek\Moje dokumenty\Visual Studio 2010\Projects\baza_dowyslania\baza_dowyslania\bin\Debug\nowa1.mdb"
connString = provider & dataFile
myConnection.ConnectionString = connString
da = New OleDbDataAdapter("Select [Nazwa firmy], [Nip], [Adres], [Nr telefonu], [Email], [Status] from Tabela1", myConnection)
da.Fill(ds, "Tabela1")
' replace "items" with the name of the table
' replace [Item Code], [Description], [Price] with the columns headers
Dim view1 As New DataView(tables(0))
Dim source1 As New BindingSource()
source1.DataSource = view1
DataGridView1.DataSource = view1
DataGridView1.Refresh()
DataGridView1.Sort(DataGridView1.Columns("Nazwa firmy"), System.ComponentModel.ListSortDirection.Ascending)
End Sub
Private Sub DataGridView1_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseDoubleClick
r = DataGridView1.CurrentRow.Index
Dim okno As New Form2()
okno.Show()
If IsDBNull(DataGridView1.SelectedRows(r).Cells(0).Value.ToString) Then ** //tutaj pojawia się błąd**
okno.TextBox1.Text = ""
Else
okno.TextBox1.Text = DataGridView1.SelectedRows(r).Cells(0).Value.ToString
End If
If IsDBNull(DataGridView1.SelectedRows(r).Cells(1).Value.ToString) Then
okno.TextBox2.Text = ""
Else
okno.TextBox2.Text = DataGridView1.SelectedRows(r).Cells(1).Value.ToString
End If
If IsDBNull(DataGridView1.SelectedRows(r).Cells(2).Value.ToString) Then
okno.TextBox3.Text = ""
Else
okno.TextBox3.Text = DataGridView1.SelectedRows(r).Cells(2).Value.ToString
End If
If IsDBNull(DataGridView1.SelectedRows(r).Cells(3).Value.ToString) Then
okno.TextBox4.Text = ""
Else
okno.TextBox4.Text = DataGridView1.SelectedRows(r).Cells(3).Value.ToString
End If
If IsDBNull(DataGridView1.SelectedRows(r).Cells(4).Value.ToString) Then
okno.TextBox5.Text = ""
Else
okno.TextBox5.Text = DataGridView1.SelectedRows(r).Cells(4).Value.ToString
End If
End Sub
End Class