Domingo 22 de Diciembre de 2024, 22:09
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
VB .NET
(Moderador:
ElNapster
) »
Dataadapter.update(dataset, Tabla)
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Dataadapter.update(dataset, Tabla) (Leído 2918 veces)
kennethsleiker
Miembro activo
Mensajes: 25
Nacionalidad:
Dataadapter.update(dataset, Tabla)
«
en:
Lunes 15 de Mayo de 2006, 01:46 »
0
Estoy estudiando este sistema!!
En un formulario tengo todo lo necesario para enviar un DataSet a la base de datos SQL. pero no se graban los registros ni me da ningun error.
Todo esta bien setiado, el InsertCommand, la coneccion, etc. No entiendo, lo he comparado con miles de ejmplo y nada me llega a la base de datos cuando la examino.
Sera que hay que hacer algo extra para que el DataAdapter.Update funcione?
Gracias
Tweet
jodijo5
Miembro HIPER activo
Mensajes: 518
Nacionalidad:
Re: Dataadapter.update(dataset, Tabla)
«
Respuesta #1 en:
Lunes 15 de Mayo de 2006, 17:25 »
0
seria bueno que muestres tu codigo, pero te puedo decir que para que funcione el dataadapter.update, tienes que tener un commanbuilder, por ejemplo de esta forma:
Código: Text
Public Class basedato
Private cn As SqlConnection
Public Sub New(ByVal sqlconn As String)
cn = New SqlConnection(sqlconn)
End Sub
Public Function conecta(ByVal sql As String, ByVal tabla As String, ByRef ds As DataSet) As SqlDataAdapter
If (ds Is Nothing) Then
ds = New DataSet("dataset")
End If
Dim da As New SqlDataAdapter
'esta estructura la pongo porque, cuando intentas hacer una instruccion sql y llenarla a una tabla
'existente, si coinciden los campos entonces los registros nuevos se agregan a la tabla creada
'en el dataset
Try
ds.Tables.RemoveAt(tabla)
Catch ex As Exception
End Try
Try
'uso el sqlcommand porque eso te asegura la instruccion select, update, insert into, drop, etc
'con eso ya no tienes que decirle que tipo de instruccion es, simplemente le implementas
Dim cm As New SqlCommand(sql, cn)
da = New SqlDataAdapter(cm)
' el command builder se pone despues de haber hecho la instruccion sql en el dataadapter
Dim cmb As New SqlCommandBuilder(da)
da.Fill(ds, tabla)
Catch ex As Exception
MsgBox("la instruccion sql, ah generado un error, el error devuelto fue: " & vbCrLf & ex.Message, MsgBoxStyle.Critical, "Error SQL")
End Try
Return da
End Function
End Class
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com
jodijo5
Miembro HIPER activo
Mensajes: 518
Nacionalidad:
Re: Dataadapter.update(dataset, Tabla)
«
Respuesta #2 en:
Lunes 15 de Mayo de 2006, 17:28 »
0
otro error puede ser que no estas cumpliendo con los requerimientos de la tabla como
la columna esta mal escrita, no respetas la longitud maxima, no respetas el tipo de dato, o quizas no respetas la relacion, debes insertar los datos en varias tablas en el orden que te dice la relacion del modelo E/R, o quizas en tu instrucion que llenaste al dataadapter, tienes un where, o un group, etc, algo que pueda filtrar los registros de la tabla
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com
kennethsleiker
Miembro activo
Mensajes: 25
Nacionalidad:
Re: Dataadapter.update(dataset, Tabla)
«
Respuesta #3 en:
Lunes 15 de Mayo de 2006, 23:31 »
0
Muchisimas gracias Hermano por tu ejemplo, lo tomaré en cuenta porque acabo de ver que tu codigo tiene cosas nuevas que puedo implementar en el mio, como el CommandBuilder.
Misteriosamente Hermano, hoy me puse a escribir nuevo codigo con un ejemplo sencillo de una table de 3 campos y misteriosamente todo me trabajo a la perfeccion. Pero sinceramente que el codigo es similar a los anteriores, aunque me falta hacer la comparcion.
GRACIAS SEñor :-)
Este es el codigo ejemplo:
Código: Text
Imports System.Data.SqlClient
Public Class Form1
Public AgendaDtSet As New DataSet
Public MiConeccion As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\106076\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\Database1.mdf;Integrated Security=True;User Instance=True")
Public MiDataAdapter As New SqlDataAdapter("select * from agenda", MiConeccion)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MiDataAdapter.Fill(AgendaDtSet, "agenda")
DataGridView1.DataSource = AgendaDtSet.Tables("agenda")
End Sub
Private Sub Salvar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Salvar.Click
Dim MiComando As New SqlCommand
Dim tmpDtSet As DataSet
Dim MiDataRow As DataRow
MiDataRow = AgendaDtSet.Tables("agenda").NewRow
MiDataRow("codigo") = codigo.Text
MiDataRow("nombre") = nombre.Text
MiDataRow("telefono") = telefono.Text
AgendaDtSet.Tables("agenda").Rows.Add(MiDataRow)
tmpDtSet = AgendaDtSet.GetChanges()
DataGridView2.DataSource = tmpDtSet.Tables("agenda")
MiComando.Connection = MiConeccion
MiComando.CommandText = "insert into agenda (codigo, nombre, telefono) values (@codigo, @nombre, @telefono)"
MiComando.Parameters.Add("@codigo", SqlDbType.Char, 10, "codigo")
MiComando.Parameters.Add("@nombre", SqlDbType.NVarChar, 20, "nombre")
MiComando.Parameters.Add("@telefono", SqlDbType.NChar, 13, "telefono")
MiDataAdapter.InsertCommand = MiComando
MiConeccion.Open()
MiDataAdapter.Update(tmpDtSet, "agenda")
MiConeccion.Close()
AgendaDtSet.AcceptChanges()
End Sub
End Class
jodijo5
Miembro HIPER activo
Mensajes: 518
Nacionalidad:
Re: Dataadapter.update(dataset, Tabla)
«
Respuesta #4 en:
Martes 16 de Mayo de 2006, 19:09 »
0
no hay de que copachay, eh revisado tu codigo y como dige, te faltaba el commandbuilder, sin eso no puedes actualizar tus datos en la base de datos,
ademas, yo tambien aprendi algo de ti:
Código: Text
Public MiConeccion As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Documents and Settings\106076\My Documents\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\Database1.mdf;Integrated Security=True;User Instance=True")
esta cadena nunca la habia visto, graias por tu aporte
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
CLR: .Net / Mono / Boo / Otros CLR
»
VB .NET
(Moderador:
ElNapster
) »
Dataadapter.update(dataset, Tabla)