elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Este metodo que estoy usando esta bien?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Este metodo que estoy usando esta bien?  (Leído 5,107 veces)
enterariel

Desconectado Desconectado

Mensajes: 29


Ver Perfil
Este metodo que estoy usando esta bien?
« en: 30 Abril 2009, 17:24 pm »


Para cargar una tabla en un ListView utilizo este codigo...

Código:

Imports System.Data.OleDb

Código:
    Private Sub Cargar_ListView_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim CNN As New OleDb.OleDbConnection
        Dim DT As New DataTable
        Dim DA As New OleDb.OleDbDataAdapter
        Dim CMD As New OleDb.OleDbCommand

        CNN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\CONTROL_SERVICENTRO\COMBUSTIBLES.mdb"
        CNN.Open()

        CMD.Connection = CNN
        CMD.CommandText = "SELECT * FROM PERSONAL"
        CMD.CommandType = CommandType.TableDirect
        DA.SelectCommand = CMD
        DA.Fill(DT)

        For Each DR As DataRow In DT.Rows
            Dim item As ListViewItem
            item = New ListViewItem(DR("CODIGO").ToString)
            item.SubItems.Add(DR("NOMBRE").ToString)
            item.SubItems.Add(DR("TURNO").ToString)
            ListView1.Items.Add(item)
        Next

    End Sub

'Este aca me carga todo se necesita cerrar la base de datos ahi???

'--------------------------------------------------------------------------------------------------------------------------------------------

'//Este Utilizo para cargar un registro en TextBox

Código:
    Private Sub cmdCargar_en_TextBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim cnn As New OleDb.OleDbConnection
        Dim dt As New DataTable
        Dim da As New OleDb.OleDbDataAdapter
        Dim cmd As New OleDb.OleDbCommand

        cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\CONTROL_SERVICENTRO\COMBUSTIBLES.mdb"
        cnn.Open()

        cmd.Connection = cnn
        cmd.CommandText = "SELECT * FROM PERSONAL WHERE CODIGO='10'"
        cmd.CommandType = CommandType.TableDirect
        da.SelectCommand = cmd
        da.Fill(dt)

        TextBox1.Text = CStr(dt.Rows(intFile)("CODIGO"))
        TextBox2.Text = CStr(dt.Rows(intFile)("NOMBRE"))
        TextBox3.Text = CStr(dt.Rows(intFile)("TURNO"))

    End Sub

'Este aca me carga todo se necesita cerrar la base de datos ahi???

'--------------------------------------------------------------------------------------------------------------------------------------------

'Esta parte es lo que mas me interesa Guardar varios registro al mismo tiempo, En un control ListView tengo unos registro tiene que guardar todo el contenido


Código:
    Private Sub Guardar_todo_el_contenido_de_un_ListView_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

        Dim I As Integer = 0

        For I = 0 To ListView2.Items.Count - 1

            Dim cnx As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\CONTROL_SERVICENTRO\COMBUSTIBLES.mdb")
            Dim SQLGuardar As String

            SQLGuardar = "INSERT INTO PERSONAL VALUES(@CODIGO,@NOMBRE,@TURNO)"

            Dim cmd As New OleDbCommand(SQLGuardar, cnx)
            cmd.CommandType = CommandType.Text

            cmd.Parameters.AddWithValue("@CODIGO", ListView2.Items(I).Text)
            cmd.Parameters.AddWithValue("@NOMBRE", ListView2.Items(I).SubItems(1).Text)
            cmd.Parameters.AddWithValue("@TURNO", ListView2.Items(I).SubItems(2).Text)

            cmd.CommandType = CommandType.Text
            cnx.Open()
            cmd.ExecuteNonQuery()
            cnx.Close()

        Next I

    End Sub

Pueden ayudarme a optimizar o mejorar o como estoy usando esta bien, gracias


En línea

odeONeSs

Desconectado Desconectado

Mensajes: 125


programo luego existo!


Ver Perfil
Re: Este metodo que estoy usando esta bien?
« Respuesta #1 en: 2 Mayo 2009, 16:56 pm »

Esta bien utilizado, pero por ejemplo el campo codigo en la base de datos, deberia ser un numero entero si no quieres poner un codigo tipo "ASA10B", ya que a la hora de hacer consultas es mas rápido, y lo de utilizar los comandos evita la inyeccion sql, pero  para mayor seguridad y que no se te salgan de rango o de tipo prueba con:

 cmd.Parameters.Add("@NOMBRE", OleDbType.VarChar, 40)
 cmd.Parameters("@NOMBRE").Value = "Juan luis gomez"

El 40 define la anchura máxima del campo de la base de datos y  OleDbType.VarChar el tipo de datos que almacena.
Por que en el caso de que el nombre ocupe mas de 40 caracteres y en la base de datos este configurado así, saltará un error que podras controlar.

Un saludo!!


En línea

Cambio de firma de prueba
MANULOMM


Desconectado Desconectado

Mensajes: 559


Erepublik.com


Ver Perfil
Re: Este metodo que estoy usando esta bien?
« Respuesta #2 en: 6 Mayo 2009, 00:48 am »

Otro asunto que podes tener en cuenta es no utilizar "Select * From" pues solo estas utilizando los campos nombre,codigo,turno, haz el select asi "Select Nombre,Codigo,Turno From" esto optimiza el acceso a datos.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines