cam183 | |
| 2009-01-03 22:52 - Respuestas: 0 - Tema nº: 2564840
Características: Windows XP Profesional 356 ram.
Hola a todos
quisiera que me ayudaran con un problema que tengo:
Estoy haciendo un programa en visual basic, con conexion a sql, ya tengo la conexion, la llave primaria es numerica y necesito que cuando yo oprima un boton para buscar por la llave primaria, por numero me arroja el resultado pero cuando busco por nombre(o cadena de caracteres) me deja buscar. cuando yo le doy clic en el boton me arroja un error diciendome que un tipo double no se puede convertir en string.
quisiera saber como puedo modificar el codigo para que me deje buscar por cadena de caracteres:
aqui esta el codigo completo:
Imports System.Data
Imports System.Data.SqlClient
'es una conexion con sql 2005 y visual 2005
Public Class BCPU_Nombre_Equipo
Private Function FillByCedulas() As ArrayList
Dim cn As New Conexion
AddHandler cn.EstadoConexion, AddressOf Estados
AddHandler cn.Errores, AddressOf Errores
cn.Conectar()
Dim dr As SqlClient.SqlDataReader
dr = cn.Obtener("Select Distinct NombreEquipo From Equipos")
Dim Lista As New ArrayList
Do While dr.Read
Lista.Add(dr(0))
Loop
cn.Desconectar()
RemoveHandler cn.EstadoConexion, AddressOf Estados
RemoveHandler cn.Errores, AddressOf Errores
Return Lista
End Function
Private Overloads Sub llenarGrilla()
Dim cn As New Conexion
AddHandler cn.EstadoConexion, AddressOf Estados
AddHandler cn.Errores, AddressOf Errores
cn.Conectar()
Me.DataGridView1.DataSource = cn.Obtener("Select * From Equipos", "Equipo").Tables("Equipo")
cn.Desconectar()
RemoveHandler cn.EstadoConexion, AddressOf Estados
RemoveHandler cn.Errores, AddressOf Errores
End Sub
Private Overloads Sub llenarGrilla(ByVal Cedula As String)
Dim cn As New Conexion
AddHandler cn.EstadoConexion, AddressOf Estados
AddHandler cn.Errores, AddressOf Errores
cn.Conectar()
Me.DataGridView1.DataSource = cn.Obtener("Select * From Equipos Where ActivoFijo =" & CDbl(Cedula), "Equipo").Tables("Equipo")
cn.Desconectar()
RemoveHandler cn.EstadoConexion, AddressOf Estados
RemoveHandler cn.Errores, AddressOf Errores
End Sub
Private Sub Estados(ByVal sender As Object, ByVal msg As Object)
Resultados.Porcentaje = CType(sender, Integer)
Resultados.Estado = CType(msg, String)
End Sub
Private Sub Errores(ByVal Msg As String)
Resultados.Errores = Msg
End Sub
Private Sub VistaEmpleados_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.ListBox1.Items.Clear()
Me.ListBox1.Items.AddRange(Me.FillByCedulas.ToArray)
Me.llenarGrilla()
End Sub
Private Sub cboCedulas_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CbxNombreEquipo.SelectedValueChanged
Me.llenarGrilla(Me.ListBox1.Text)
End Sub
Private Sub btnAsignar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Asignar.Click
Resultados.Activo_Fijo = Me.DataGridView1.CurrentRow.Cells(0).Value
Resultados.Nombre_Usuario = Me.DataGridView1.CurrentRow.Cells(1).Value
Resultados.Nombre_Equipo = Me.DataGridView1.CurrentRow.Cells(2).Value
Resultados.Marca = Me.DataGridView1.CurrentRow.Cells(3).Value
Resultados.Serial = Me.DataGridView1.CurrentRow.Cells(4).Value
Resultados.Descripcion = Me.DataGridView1.CurrentRow.Cells(5).Value
Resultados.Centro_De_Costo = Me.DataGridView1.CurrentRow.Cells(6).Value
Resultados.Codigo_Financiero = Me.DataGridView1.CurrentRow.Cells(7).Value
Resultados.Licencia_Windows = Me.DataGridView1.CurrentRow.Cells(8).Value
Resultados.Licenciamiento = Me.DataGridView1.CurrentRow.Cells(9).Value
Resultados.Licencia_Office = Me.DataGridView1.CurrentRow.Cells(10).Value
Resultados.Medio_Licenciamiento = Me.DataGridView1.CurrentRow.Cells(11).Value
Me.Close()
End Sub
'he intentado con este mismo codigo con un listbox me da una parte
'porque solo me carga el primer dato de la base de datos nop importa cual seleccione.
'tambien he intentado con menuStrip y me vota el mismo error
'estoy utilizando un formulario qu e contiene un txtbox, una gridview, un boton y otro formulario donde se cargan los datos
End Class
| |
|
|