De nuevo, lo haré de dos formas
- Asignando a la propiedad de la tabla source el dataset
- Recorriendo el dataset y agregando los datos a la tabla
Los pasos son:
- Crear una base de datos en Oracle llamada "DBEJEMPLO"
- Crear una tabla llama "DEPARTAMENTOS" con los campos
- departamento
- descripción
( "DEPARTAMETO" NUMBER(4,0),
"DESCRIPCION" CHAR(100) NOT NULL ENABLE,
CONSTRAINT "DEPARTAMETOS_PK" PRIMARY KEY ("DEPARTAMETO") ENABLE
)
3. Crear un proyecto en Visual Studio
4. Agregar 2 datagridview al formulario desde la barra de herramientas.
5. Ir a proyecto y agregar una referencia llamada "Oracle.DataAccess"
6. Crear una clase llama "CONEXION" y escribir el siguiente código
Imports
Oracle.DataAccess.Client
Public
Class conexion
Private
OCommand As New
OracleCommand()
Dim
OConnString As String
= "DATA SOURCE=127.0.0.1;PASSWORD=Micontraseña;USER
ID=Miusuario"
Public
oConexion As OracleConnection
= New OracleConnection(OConnString)
Dim
oAdapter As OracleDataAdapter
Public
Dataset As DataSet
= New DataSet()
Private Function CargarDataset(ByVal
OString As String,
ByVal tabla As String) As DataSet
Try
oAdapter = New
OracleDataAdapter(OString, oConexion)
Dim
oCreadorDeComandos As OracleCommandBuilder
= New OracleCommandBuilder(oAdapter)
Dataset.Clear()
oAdapter.Fill(Dataset, tabla)
oConexion.Close()
Return Dataset
Catch
ex As Exception
Return Nothing
MessageBox.Show("No
se pudo completar la operación, intente de verificar la conexión a la base de
datos.", "Fallo conexión a la base
de datos", MessageBoxButtons.OK,
MessageBoxIcon.Error)
Finally
oConexion.Close()
End Try
End Function
Public Sub Cargargrid(ByVal
formulario As String,
ByRef dtg As DataGridView)
Try
Dim tabla As String = "departamentos"
Dim
OString As String
= "select a.id_departamento as Código,
a.descripcion as Departamento from
" + tabla + " a"
Dim ds As DataSet =
CargarDataset(OString, tabla)
If ds Is Nothing Then
Exit Sub
End If
Select Case formulario
Case 1
CargarForma1(ds, dtg, tabla)
Case 2
CargarForma2(ds,
dtg, tabla)
Case Else
Exit Sub
End Select
Catch
ex As Exception
MessageBox.Show(Err.Description)
End Try
End Sub
Private Sub CargarForma1(ByVal
ds As DataSet,
ByRef dtg As DataGridView, ByVal
tabla As String)
Try
Dim n As Integer ' variables para el
for
Dim fila As DataGridViewRow '
representa una fila del datagridview
' ciclo para limpiar el datagrid de cualquier dato y evitar
que se repitan
If dtg.Rows.Count > 0 Then
For n = dtg.Rows.Count - 2 To
0 Step -1
fila = dtg.Rows(n)
dtg.Rows.Remove(fila) ' Eliminamos la fila de la colección
Next
End If
dtg.DataSource = Nothing
' limpiar el datasourse
dtg.Refresh() ' actualizar
dtg.DataSource
= ds ' asignar en la memoria la tabla
dtg.DataMember
= tabla ' asignar la tabla escogida
Catch ex As Exception
MessageBox.Show(Err.Description)
End Try
End Sub
Private Sub CargarForma2(ByVal
ds As DataSet,
ByRef dtg As DataGridView, ByVal
tabla As String)
Try
If
dtg.Rows.Count > 0 Then
dtg.Rows.Clear() 'limpiar
el datagridview
End If
Dim filas As Integer =
ds.Tables(tabla).Rows.Count - 1 ' verificamos
If filas
< 0 Then
Exit Sub
End If
Dim Codigo
As String
Dim
descripcion As String
For i As Integer = 0 To filas ' recorrer las
filas del dataset cargado
Codigo = ds.Tables(tabla).Rows(i)(0)
descripcion =
ds.Tables(tabla).Rows(i)(1)
dtg.Rows.Add(Codigo, descripcion)
Next
Catch ex As Exception
MessageBox.Show(Err.Description, "Fallo conexión a la base de datos", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End
Class
Private Sub Form1_Load(sender As
System.Object, e As
System.EventArgs) Handles
MyBase.Load
Dim s As New conexion
s.Cargargrid(1, DataGridView1)
s.Cargargrid(2, DataGridView1)
End Sub
8. Listo a ejecutarlo
El proyecto esta disponible AQUI
Espero que les sea de gran utilidad...!!!
excelente me fue de gran utilidad muchas gracias ingeniera, tambien le quiero preguntar si saber como insertarle los valores a la tabla apartir de varios textbox?
ResponderEliminarSi claro haré un nuevo tema sobre eso. :)
EliminarHola que tal, me gustaria que me facilitaras tu proyecto para hacer unas pruebas, gracias y felicidees tienes mi admiracion por su blog ing.
ResponderEliminarmi correo jossm04@gmail.com .... Thanks
EliminarMuchas felicidades ING. Eve Porras gracias por compartir sus conocimientos
ResponderEliminarHola ,gracias por el tema, tenia un par de dudas...
ResponderEliminarBuen dia, como puedo hacer si tengo un proyecto de n capas, Ya tengo mis datos exportados desde excel a un DataGridView, ahora como paso del DataGridView a un DataSet y luego que se guarden en mi base de Oracle?
ResponderEliminarEstoy trabajando con VisualStudio 2010(C#) y base de datos Oracle.
Eliminar