3
« en: Jueves 1 de Agosto de 2013, 13:42 »
Muy buenas,
De nuevo me encuentro con un problema con los datagrid.
He creado un segundo form que recupera los datos de una tabla en Access y los filtra en base a un textbox del formulario principal. También tengo unos textbox que al rellenarlos crean un nuevo registro en el datagrid junto a los recuperados de la BBDD.
El problema es que, cuando lo cierro, los datos no se guardan en la tabla de access, quedando solo los que ya existian.
¿alguien podría indicarme como realizar esto?
Este es el código que tengo hasta ahora:
Public Class Form2
Dim conexion As OleDb.OleDbConnection
Dim MiDt As New DataTable
Dim BdS As Windows.Forms.BindingSource
Dim Scon As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=BBDD.mdb"
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
conexion = New OleDb.OleDbConnection(Scon)
conexion.Open()
Try
Dim MiDa As New OleDbDataAdapter("SELECT siniestro, fecha, obs FROM evolutivo WHERE siniestro = '" & Form1.NumeroTextBox.Text & "'", conexion)
MiDt.Clear()
MiDa.Fill(MiDt)
BdS = New BindingSource
BdS.DataSource = MiDt
Me.DataGridView1.DataSource = BdS.DataSource
End Try
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim dt As DataTable = DirectCast(DataGridView1.DataSource, DataTable)
Dim row As DataRow = dt.NewRow()
'asignas los campos
dt.Rows.Add(Form1.NumeroTextBox.Text, DateTimePicker1.Text, TextBox2.Text)
End Sub
End Class
He intentado añadir al evento Button1_Click lo siguiente:
With MiDa
.InsertCommand = New System.Data.OleDb.OleDbCommand
.InsertCommand.Connection = conexion
.InsertCommand.CommandText = "INSERT INTO evolutivo(siniestro,fecha,obs) VALUES (@siniestro,@fecha,@obs)"
End With
Me.MiDa.Update(CType(Me.MiDt, DataTable))
Pero me al ejecutarlo me salta el siguiente error: "No se han especificado valores para algunos de los parámetros requeridos."
Muchas gracias!