Principales respuestas
Problema con búsqueda en base de datos....

Pregunta
-
Tengo un formulario de búsqueda que tiene un textbox para ingresar la palabra o el valor a buscar, un combobox para seleccionar el campo por el cual realizar las búsqueda y un botón de buscar. El problema es que cuando intento hacer una búsqueda ingresando un numero, seleccionando el criterio de búsqueda y dando clic en el botón buscar me aparece el siguiente error:
"No se puede realizar la operación 'Like' en System.Decimal y System.String."
La búsqueda la hago en una tabla artículos y los campos por los cuales pretendo que se realice la búsqueda son código, nombre y el id del proveedor.
El único código que utilizo dentro del botón buscar es el siguiente:
Select Case cbocategoria.SelectedIndex
Case 0
dv.RowFilter = String.Format(("codigo Like '%{0}%'"), txtingresar.Text)
Case 1
dv.RowFilter = String.Format("nombre Like '%{0}%'", txtingresar.Text)
Case 2
dv.RowFilter = String.Format("id_proveedor Like '%{0}%'", txtingresar.Text)
End SelectPreviamente declaro lo siguiente:
Dim dv As New DataView
y dentro del load del formulario:
Dim da As New SqlDataAdapter("SELECT * FROM articulos", cadcon)
Dim ds As New DataSet
da.Fill(ds)
dv.Table = ds.Tables(0)
DataGridView1.DataSource = dvEspero y me puedan ayudar. Gracias....
Nota: Estoy ocupando Visual Studio 2010 Y SQL Server 2008. Y por lógica Visual Basic.Net.....
viernes, 12 de julio de 2013 18:54
Respuestas
-
hola francisco si lo que quieres es filtrar haslo de este modo
dv.RowFilter = String.Format("Campo like '" & Textbox1.text & "'")
ahora si estas usando campo numerico te servira este metodo
dv.RowFilter = String.Format("Convert (Campo, 'System.String') like '" & Textbox1.Text & "' ")
ya que de lo contrario te podria generar un error, a mi me ha funcionado sin problemas, has la prueba y comentas
- Propuesto como respuesta dario_axariel sábado, 13 de julio de 2013 0:28
- Marcado como respuesta FranNovato lunes, 15 de julio de 2013 18:09
sábado, 13 de julio de 2013 0:28
Todas las respuestas
-
Hola, en todo caso si usas el RowFilter , podrias usarlo de la siguiente manera:
Ds -> es mi dataset cargado.
ds.Tables(0).DefaultView.Rowfilter="articulo='1'"; ' Búsqueda con RowFilter
DataGridView.DataSource=ds.tables(0).DefaultView;
Espero te pueda servir.
Saludos
F.M.N Informático
- Editado Franco Mori Nivin viernes, 12 de julio de 2013 22:30 Falto Link
viernes, 12 de julio de 2013 22:28 -
Pero en que caso te esta dando el error? En que Case del Select entra cuando te da la excepción?
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
viernes, 12 de julio de 2013 23:09 -
"No se puede realizar la operación 'Like' en System.Decimal y System.String."
los campo codigo y id_proveedor de que tipo son en la tabla de tu db ? es quizas numerico o decimal
porque recuerda que el LIKE no aplcia a estos tipos de campos solo a campos varchar
saludos
Leandro Tuttini
Blog
Buenos Aires
Argentinaviernes, 12 de julio de 2013 23:56 -
hola francisco si lo que quieres es filtrar haslo de este modo
dv.RowFilter = String.Format("Campo like '" & Textbox1.text & "'")
ahora si estas usando campo numerico te servira este metodo
dv.RowFilter = String.Format("Convert (Campo, 'System.String') like '" & Textbox1.Text & "' ")
ya que de lo contrario te podria generar un error, a mi me ha funcionado sin problemas, has la prueba y comentas
- Propuesto como respuesta dario_axariel sábado, 13 de julio de 2013 0:28
- Marcado como respuesta FranNovato lunes, 15 de julio de 2013 18:09
sábado, 13 de julio de 2013 0:28 -
Pues me marca el error en Case 0 y el Case 2 Y es cuando hago búsquedas de datos numéricos....lunes, 15 de julio de 2013 15:47
-
Los dos campos son numeric....lunes, 15 de julio de 2013 15:48
-
Y aplicando lo que comenta Darío? Lo has probado? Si los campos son numeric como dijo Leandro no puedes aplicar un LIKE. Debes convertir a string el contenido del campo para ello..
Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos
lunes, 15 de julio de 2013 15:55 -
Pues la respuesta de Dario me sirvió. Muchas gracias..lunes, 15 de julio de 2013 17:39