Visual Basic - Problema en un Fill de un DataAdapter OleDb

Life is soft - evento anual de software empresarial
   
Vista:

Problema en un Fill de un DataAdapter OleDb

Publicado por Leo (1 intervención) el 30/03/2012 12:43:27
Hola compañeros!
Tengo una base de datos tipo SQLServer y una aplicación en Visual Basic Express que trata de extraer datos de la misma. El tema es que tengo un problema del Tipo ArgumentNullException que se produce al intentar hacer el Fill en los DataAdapter y no se como solucionarlo. La base de datos está bien y contiene datos ya que al extraer datos empleando las herramientas visuales de Visual (DataSet, BindingSource y TableAdapter) no tengo problemas, pero al intentar hacerlo mediante código y empleando OleDb no hay manera.

Os muestro el código a ver si podéis ayudarme. Muchas Gracias!!!

REM se importa oleDb
Imports System.Data.OleDb

Public Class frmOfertas

REM se declara "DSBase" como un DataSet
Public DSBase1 As New DataSet("DSBase")

Private filas() As DataRow
Private fila As DataRow
Private enlazado As Integer

Private Sub frmOfertas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


REM se declara un objeto connection y dos objetos DataAdapter (uno por tabla)
Dim ConBase As OleDbConnection
Dim DATiposViajes As OleDbDataAdapter
Dim DAViajes As OleDbDataAdapter
Dim rel As DataRelation

REM se crea el objeto connection
ConBase = New OleDbConnection()

REM se indica la cadena e conexión en la propiedad "ConnectionString" del objeto "Connection"
ConBase.ConnectionString = "Provider=SQLOLEDB;" & "Integrated Security=SSPI;" & _
"Persist Security Info=False;" & "Initial Catalog =PracticasL;" & _
"Data Source=.\SQLEXPRESS;" & _
"AttachDbFilename=C:\Users\L\Desktop\PRÁCTICAS\PracticasL.mdf;" & _
"Integrated Security=True;" & "Connect Timeout=30;" & "User Instance=True;"


REM se crean los objetos DataAdapter

DATiposViajes = New OleDbDataAdapter("SELECT Lugar FROM [Tipos de viajes]", ConBase)
DAViajes = New OleDbDataAdapter("SELECT FechaInicio FROM Viajes", ConBase)

REM se rellenan los "DataAdapter" con los datos de la tablas

DATiposViajes.Fill(DSBase1.Tables("Tipos de viajes"))
DAViajes.Fill(DSBase1.Tables("Viajes"))


REM se crea la relación entre las tablas "Tipos de viajes" (uno) y "Viajes" (muchos)
rel = New DataRelation("TiposviajesViajes", _
DSBase1.Tables("Tipos de viajes").Columns("CodigoTipoViaje"), _
DSBase1.Tables("Viajes").Columns("CodigoTipoViaje"), True)

REM se añade la relación a Relations del DataSet
DSBase1.Relations.Add(rel)

REM se crean los objetos "Binding" y se enlazan con los controles existentes en el Form1
txtLugar.DataBindings.Add(New Binding("Text", DSBase1, "Tipos de viajes.Lugar"))
txtPais.DataBindings.Add(New Binding("Text", DSBase1, "Tipos de viajes.Pais"))
txtTipoTransporte.DataBindings.Add(New Binding("Text", DSBase1, "Tipos de viajes.TipoTransporte"))
txtImporte.DataBindings.Add(New Binding("Text", DSBase1, "Tipos de viajes.Importe"))


enlazado = Me.BindingContext(DSBase1, "Tipos de viajes").Position
filas = DSBase1.Tables("Tipos de viajes").Rows(enlazado).GetChildRows("TiposviajesViajes")

REM se eliminan los elementos que pueda haber en el lstViajes
lstViajes.Items.Clear()

REM se añaden las filas con la información al lstViajes
For Each fila In filas
lstViajes.Items.Add("Reservado por el cliente: " & fila("CodigoCliente") & fila("PlazasReservadas") & " plazas " & "y con fecha de inicio el: " & fila("FechaInicio"))
Next

End Sub

Private Sub cmdAdelante_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAdelante.Click

Dim posicion As Integer = Me.BindingContext(Me.DSBase1, "Tipos de Viajes").Position
Dim contar As Integer = Me.BindingContext(Me.DSBase1, "Tipos de viajes").Count

If (posicion < contar) Then
Me.BindingContext(DSBase1, "Tipos de viajes").Position += 1
Else
Me.BindingContext(DSBase1, "Tipos de viajes").Position = contar
End If

End Sub

Private Sub cmdAtras_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAtras.Click
If (Me.BindingContext(DSBase1, "Tipos de viajes").Position > 0) Then
Me.BindingContext(DSBase1, "Tipos de viajes").Position -= 1
Else
Me.BindingContext(DSBase1, "Tipos de viajes").Position = 0
End If
End Sub

Private Sub cmdCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCerrar.Click
Me.Close()
End Sub
End Class
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder