Fecha y hora actual: Sab 19 May, 2012 22:03 pm
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

TextBox que no es leido por SELECT

Responder al Tema

Índice del Foro > Visual Basic .NET > TextBox que no es leido por SELECT

Autor Mensaje
Baldomero
Usuario Iniciado


Registrado: 24 Oct 2011
Mensajes: 15

Mensaje Publicado: Vie 25 Nov, 2011 00:39 am

Título del mensaje: TextBox que no es leido por SELECT

Responder citando

Buenas noches. En la Subrutina "Suprimirtitular" llamo a la función ObtenerCantidad para ver si el titular que quiero suprimir tiene operaciones realizadas.
Para eso digo en la función query = "SELECT COUNT (*)...WHERE titular =" & TitularTextbox.text
y no funciona, me da error "Faltan parámetros requeridos". Pero veo que pasando el cursor la query está perfectamente; por el contrario si pongo la
query = "SELECT COUNT(*) ...WHERE titular = 'AMG' " (que es el contenido del TextBox, funciona perfectamente. ¿Por qué? ¿Me lo podríais aclarar? Muchas gracias.

Private Sub btnSuprimirtitular1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSuprimirtitular1.Click
Dim cantidad As Integer = ObtenerCantidad()
MsgBox(cantidad)
If cantidad > 0 Then
If MessageBox.Show("¿Realmente desea suprimir este registro?", "Suprimir", MessageBoxButtons.YesNo, _
MessageBoxIcon.Warning) = DialogResult.No Then
MsgBox("Operación cancelada")
Exit Sub
End If
End If
End Sub
-------
Public Function ObtenerCantidad() As Integer
Try
Dim cnn As OleDb.OleDbConnection
cnn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Alberto Moreno Gil\Mis documentos\bd4.mdb")
cnn.Open()
MsgBox(TitularTextBox.Text) ' Está bien: AMG
Dim query As String = "SELECT COUNT(*) FROM operaciones where titular =" & TitularTextBox.Text 'OCASIONA ERROR
'Dim query As String = "SELECT COUNT(*) FROM operaciones where titular = 'AMG'" 'fUNCIONA BIEN
Dim cmd As New OleDbCommand(query, cnn)
Return CInt(cmd.ExecuteScalar()) 'AQUI DA EL ERROR pero se refiere al SELECT...
Catch ex As Exception
MessageBox.Show(ex.Message, "Contar registros", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
End Function

Volver arriba
Ver perfil del usuario Enviar mensaje privado
weirdmix
Moderador Global


Registrado: 08 May 2008
Mensajes: 618
Ubicación: DF - MEXICO

Mensaje Publicado: Vie 25 Nov, 2011 19:32 pm

Título del mensaje: Re: TextBox que no es leido por SELECT

Responder citando

al momento de debugear el programa, vete a la ventana --Immediate-- e investiga el valor del textbox antes de q lo asignes a la cadena, lo unico q se me ocurre es q estes intentando poner el valor de un textbox diferente...

saludos
Super Super Super


------------------------------
WeirdMix
Colaborador y Moderador Global
Volver arriba
Ver perfil del usuario Enviar mensaje privado Enviar correo Yahoo Messenger MSN Messenger
Tesis
Administrador


Registrado: 04 Mar 2007
Mensajes: 2750
Ubicación: Valencia - España

Mensaje Publicado: Vie 25 Nov, 2011 21:00 pm

Título del mensaje: Re: TextBox que no es leido por SELECT

Responder citando

El problema es simple, mira:

Que tienen estas dos consultas diferente;
Baldomero escribió:
Dim query As String = "SELECT COUNT(*) FROM operaciones where titular =" & TitularTextBox.Text 'OCASIONA ERROR

Baldomero escribió:
Dim query As String = "SELECT COUNT(*) FROM operaciones where titular = 'AMG'" 'fUNCIONA BIEN


Lo que tienen diferente es que todas las cadenas de texto enviadas a la base de datos tienen que ir entre comillas.
Tu consulta debería de quedar así:

Código:
Dim query As String = "SELECT COUNT(*) FROM operaciones where titular ='" & TitularTextBox.Text & "'"


Si el campo a consultar/modificar es numérico no va entre comillas, si es texto si.


Espero a verte ayudado.
Saludos.


www.lospillaos.es
Normas del foro
Aprende a postear correctamente usando las etiquetas
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Baldomero
Usuario Iniciado


Registrado: 24 Oct 2011
Mensajes: 15

Mensaje Publicado: Vie 25 Nov, 2011 21:39 pm

Título del mensaje: Re: TextBox que no es leido por SELECT

Responder citando

Gracias por vuestras amables respuestas.
1) En cuanto a si el TextBox es el apropiado o no, podeis ver que inmediatamente antes del SELECT he puesto un MsgBox que me dice el contenido del TextBox, o sea que por ahí no hay problema.
2) He puesto las comillas simples que me habeis indicado. Ahora no me da error de "Falta parámetro...", sólo una advertencia.
Como tengo la línea crítica de la función ahora con vuestra rectirficación es
Dim query As String = "SELECT COUNT(*) FROM operaciones where titular = ' " & TitularTextBox.Text & " ' " 'No da error, pero no da resultado
'Dim query As String = "SELECT COUNT(*) FROM operaciones where titular = 'AMG'" 'Funciona perfectamente, resultados correctos.

La advertencia que aparece es "La función 'ObtenerCantidad' no devuelve un valor en todas las rutas de acceso de código. ¿Falta una instrucción Return?" Evidentemente no falta la instrucción Return, pero el resto de la advertencia...apenas lo entiendo. Con la llamada al TextBox me da resultado cero, y poniendo a mano el titular, me da los resultados correctos. Repito, muchas gracias.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Baldomero
Usuario Iniciado


Registrado: 24 Oct 2011
Mensajes: 15

Mensaje Publicado: Sab 26 Nov, 2011 00:17 am

Título del mensaje: Re: TextBox que no es leido por SELECT

Responder citando

Al final funcionó: he cambiado algo las denominaciones pero funciona,
Ahora lo veo sencillo, pero me ha dado mucha guerra,
Muchas gracias por vuestra ayuda.
---
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim cantidad As Integer = cuantoshay()
MsgBox(cantidad)
If cantidad > 1 Then
MsgBox("No se puede suprimir")
End If
con.Close()
End Sub
Function cuantoshay() As Integer
Dim query As String
con.Open()
query = "SELECT COUNT(*) FROM operaciones where titular = '" & TitularTextBox.Text & "'"
comando = New OleDb.OleDbCommand(query, con)
MsgBox(comando.ExecuteScalar())
Return CInt(comando.ExecuteScalar())
End Function

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Calcular el valor de un textBox a partir de otr...

Noha C, C#, Visual C++ 12 Jue 15 Mar, 2012 18:24 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Utilizar un TextBox.Text en una orden SQL

Baldomero Visual Basic .NET 2 Mie 23 Nov, 2011 13:54 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Conectar textbox con tabla de access

soyeddygh Visual Basic .NET 2 Mie 12 Oct, 2011 19:36 pm Ver último mensaje
El foro no contiene ningún mensaje nuevo

Select sum group by

aircron SQL - Lenguaje SQL 0 Mar 09 Ago, 2011 08:54 am Ver último mensaje
El foro no contiene ningún mensaje nuevo

Eventos en Un Textbox Dentro de un GridView

chow ASP, ASP.NET 2 Mie 13 Jul, 2011 20:04 pm Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,