Foros del Web » Programación para mayores de 30 ;) » .NET »

Forma correcta de trabajar VB.NET 2005

Estas en el tema de Forma correcta de trabajar VB.NET 2005 en el foro de .NET en Foros del Web. Hola a todos. Lei un poco la documentacion sobre como trabajar con un datasource (en mi caso es pervasive, pero no importa al caso) con ...
  #1 (permalink)  
Antiguo 18/10/2006, 13:01
 
Fecha de Ingreso: julio-2006
Mensajes: 98
Antigüedad: 17 años, 9 meses
Puntos: 0
Forma correcta de trabajar VB.NET 2005

Hola a todos.
Lei un poco la documentacion sobre como trabajar con un datasource (en mi caso es pervasive, pero no importa al caso) con vb.net 2005.

Si entendi bien, una de las formas de actualizar la informatcon es en grosso modo:
crear al conexion, llenar un DataAdapter, copiarlo al Dataset, permitir a los usuarios que modifiquen los datos del dataset y cuando ocurre un evento, por ejemplo, volver a copiar el dataset en el dataAdapter para despues hacer el Update sobre la tabla fisica.

Pues bien, si esto es mas o menos asi, lo que no entiendo es:

Que tendria que cargar la primera vez en el dataAdapter si por ejemplo recibo un archivo de novedades que van a actualizar un archivo maestro.
Tengo que cargar todo el archivo maestro en el DataAdapter ?

Muchas...
  #2 (permalink)  
Antiguo 18/10/2006, 18:05
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
mira enrealidad el que contiene las tablas de una consulta, si no mal recuerdo las guarda en xml, asi el dataset tiene una consulta y tu la puedes trabajar como si fuera un tabla y no tener que ir a la base de datos

mira microsoft te da una respuesta de lo que digo
http://msdn.microsoft.com/library/sp...classtopic.asp

aca un ejemplo de insertar fila con un dataset, pero antes te respondo tu pregunta lo que hace el dataApadter lo que hace es cambiar los datos en la base de datos fisica si asi se puede llamar

para que sepan el estsa trabajando con visual basic .net y esta trabajando con winform, pero le envio esto, para ver si cacha como se hace

Dim fila As DataRow ----> esto crea una nueva fila de datos
OleDbDataAdapter1.Fill(DataTaller2, "Taller") --->con esto le indicas cual es la tabla y cual es el registro virtaul que vas a trabajar osea el data ser

fila = DataTaller2.Tables("Taller").NewRow --> con esto dices que como se tiene que comportar la tabla y cuales son suscolumnas

fila("Rut_Taller") = txtRutTaller.Text con esto dices que la columna rut_taller va obtener el valor del textbox

DataTaller2.Tables("Taller").Rows.Add(fila) y aqui lo mas importante agregas la fila a la base de datos

BindingContext(DataTaller2, "Taller").EndCurrentEdit() con esto confirmas la modificaciones a la base de datos

OleDbDataAdapter1.Update(DataTaller2) con esto actualizar el datasource

Me.Close() y cierrras la conexion


te mando un ejemplo de como agregar datos de otra manera


Dim ex As Exception 'variable que guardara una exepcion (error)
Dim connClientes As New OleDb.OleDbConnection() 'objeto de ADO.net para conectar con la BD
Dim MyCommandCli As New OleDb.OleDbCommand() 'objeto de ADO.net para ejecutar la consulta SQl

connClientes.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Me.strRutaCliente & "\COVEFAC.mdb" 'defino el proveedor y la bd para la conexion.

Try 'inicio del manejador de errores
connClientes.Open() 'abrimos la conexion a la B.D

'defino los parametros para el comando SQL
MyCommandCli.CommandText = "INSERT INTO tblClientes (Rut,Razon_Social,Giro,Fono)" & _
" VALUES(@datRut,@datRazCli,@datGiro,@datFono)"

'Inicio traspaso de parametros insert

MyCommandCli.Parameters.Add(New System.Data.OleDb.OleDbParameter("@datRut", System.Data.OleDb.OleDbType.VarWChar)) 'nuevo parametro definicendo el tipo: VarWChar para datos de tipo texto

MyCommandCli.Parameters("@datRut").Value = Me.txtRut.Text 'asigno el valor al parametro para, mas adelante, mandarlo a la tabla de la B.D

MyCommandCli.Parameters.Add(New System.Data.OleDb.OleDbParameter("@datRazCli", System.Data.OleDb.OleDbType.VarWChar))
MyCommandCli.Parameters("@datRazCli").Value = Me.txtRazonSocial.Text

MyCommandCli.Parameters.Add(New System.Data.OleDb.OleDbParameter("@datGiro", System.Data.OleDb.OleDbType.VarWChar))
MyCommandCli.Parameters("@datGiro").Value = Me.txtGiro.Text

MyCommandCli.Parameters.Add(New System.Data.OleDb.OleDbParameter("@datFono", System.Data.OleDb.OleDbType.Integer)) 'de tipo Integer para datos numéricos
MyCommandCli.Parameters("@datFono").Value = Val(Me.txtFijo.Text)

'fin traspaso de parametros insert

MyCommandCli.ExecuteNonQuery() 'ejecuto la consulta

Catch ex 'en caso de excepciones
MsgBox(ex.Message, MsgBoxStyle.Critical, ex.Source) 'muestro la excepción contenida en la variable "ex"

End Try 'fin del manejador de errores

if ex is nothing then 'si "ex = nada, es decir, no se produjeron errores"
MsgBox("Registro insertado con éxito", MsgBoxStyle.Information, "SQL INSERT")
end if

connClientes.Close() 'cierro la conexión

espero quede un poco mas claro

Saludos

esta una buena manera de ahcerlo ya que el dateset pide mucha memoria
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #3 (permalink)  
Antiguo 18/10/2006, 18:06
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
bueno aca microsoft y su docuementacion te explica algo y sus metodos
http://support.microsoft.com/kb/313483/es

si te das cuenta lo de arriba hay 2 maneras de ahcer lo mismo, tu tienes que decidir si vas a gastar memoria, ademas ten cuidado ya que segun lo que se el dataset no existe en 2005 y menos en 2007
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #4 (permalink)  
Antiguo 19/10/2006, 10:33
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
FNEX_NET, a que te refieres con que el dataset no existe en 2005 y menos en 2007?

En este tutorial explican bien la forma de trabajr con DataSets, y una ves agarrandole la onda, es sencillo y muy practico de usar.

http://asp.net/learn/dataaccess/tuto....aspx?tabid=63
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
  #5 (permalink)  
Antiguo 19/10/2006, 10:39
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
bueno, no estoy muy seguro, pero que me lo confirmen lo que trabajan en el 2005, me parece haber escuchado en un conferencia de microsoft que no existia, bueno yo no he podido trabajar con 2005, asi que me quede con esa sensacion de que no existia.

bueno puede ser otro elemento de la conecion que se peude haber sacado
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #6 (permalink)  
Antiguo 19/10/2006, 15:00
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
Te refieres a que no existen DataSets en el .Net framework 2? Si por 2005 te refieres al Visual Studio 2005, lo que dices es equivocado, si hay clase DataSet y mejorada desde la version 1.1.

Por 2007, imagino que te refieres al Framework 3 y el VS Orcas, esos no los he utilizado, pero estoy 99% seguro de que los DataSets continuan.
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
  #7 (permalink)  
Antiguo 19/10/2006, 15:42
Avatar de Developer9
(Desactivado)
 
Fecha de Ingreso: abril-2005
Ubicación: Mi Ecuador del alma
Mensajes: 4.196
Antigüedad: 19 años
Puntos: 47
PAra trabajar con un dataset mejor trabajo con una colección... dícen que es mas optimo
  #8 (permalink)  
Antiguo 19/10/2006, 16:09
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Bueno cuando fui a la charla de Orcas, o el beta de VS2007
no mencionaron nada del dataset, ademas le pregunte aun amigo para saber si era bien lo que recordaba, y creo que es lo que decias tu
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #9 (permalink)  
Antiguo 20/10/2006, 10:52
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
Como vas a llenar la Collección con información desde la BAse de Datos? y, una vez que termines de trabajar con la colección, como vas a guardar las modificaciones?
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
  #10 (permalink)  
Antiguo 20/10/2006, 11:05
Avatar de Alex Reyes  
Fecha de Ingreso: diciembre-2005
Ubicación: Camarillo, CA
Mensajes: 242
Antigüedad: 18 años, 4 meses
Puntos: 2
Información Respondiendo.

Cita:
Iniciado por nolo41 Ver Mensaje
Pues bien, si esto es mas o menos asi, lo que no entiendo es:

Que tendria que cargar la primera vez en el dataAdapter si por ejemplo recibo un archivo de novedades que van a actualizar un archivo maestro.
Tengo que cargar todo el archivo maestro en el DataAdapter ?
Con el Data Adapter puedes cargar lo que tu quieras de la Base de Datos, puedes cargar toda una tabla, solo unos cuantos records, columnas de diferentes tablas, etc.

Haciendo un DataSet tipeado, puedes empezar a trabajar con un DataTable, agregar filas y una vez que terminaste de agregar esas filas, usas el Update DataAdpater para reflejar esos cambios en tu DB.

Me confundia el método Update del Data Adapter con el Update de SQL, son cosas diferentes, el Update del DataAdapter va a comparar tu DataTable con la fuente original, y cualquier cambio efectuado lo va a poner en la tabla original, hace un Update de la tabla.

Si no quieres trabajar con tablas, puedes hacer cambios registro por registro puedes traer solo un registro con tu DataAdapter usando una función que tu defines como GetRowByID una vez teniendo esa fila, tu le haces lo que quieras y haces un Update. O puedes insertar, borrar o actualizar registros usando funciones que tu defines en el DataAdapter.

Como vez, es muy flexible el uso de DataAdapters y DataTables. Evitas estar escribiendo consultas SQL en tu programa y dejas esa manipulación en la definición del DataSet. Dandote la facilidad de que si despues hay cambios en tu base de datos, solo tienes que adaptar el DataSet a la nueva estructura, en vez de modificar el/los programas que utilizan ese DataSet.

Si en el programa, todo se hace en DataAdapters y DataTables, para que queremos un DataSet? El DataSet es solo un contenedor, puedes agregar tablas y vistas como si fuera una instancia de un servidor de SQL. Es una forma de mantener una organización lógica de la estructura de acceso a datos.
__________________
Alex Reyes
http://jalexreyes.spaces.live.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:38.