TextBox que no es leído por SELECT

Cerrado
baldomero123 Mensajes enviados 9 Fecha de inscripción viernes, 25 de noviembre de 2011 Estatus Miembro Última intervención jueves, 26 de enero de 2012 - 25 nov 2011 a las 12:38
baldomero123 Mensajes enviados 9 Fecha de inscripción viernes, 25 de noviembre de 2011 Estatus Miembro Última intervención jueves, 26 de enero de 2012 - 25 nov 2011 a las 23:28
Buenos días. Como veo que por aquí hay auténticos expertos en el problema que me lleva a mal traer, a ver si sois tan amables de solucionarme el problema que me ocupa ya tres días.
En la Sub Suprimirtitular quiero suprimir el titular que aparece en Titulartextbox.text, pero antes quiero conocer cuántas operacviones ha realizado este titular. Para ello llamo a la función ObtenerCantidad para que las cuente, con SELECT COUNT. Si digo que lea lo que aparece en Titulartextbox.Tect, no hace ni caso, da siempre "0", pero si entro a mano el titular por ejemplo con
SELECT COUNT(*)... WHERE titular = 'AMG'
o el titular que sea, funciona perfectamente, pero con Titulartextbox.Text, nada de nada.
¿Dónde puede estar el error?
Recibo la advertencia (no error):"La función ObtenerCantidad no devuelve un valor en todas las rutas de acceso de código ¿Falta una instrucción Return?". Evidentemente Return sí que está presente.
He intentado interpretar esta misteriosa advertencia y no la he entendido ni cómo puedo solucionar este embrollo. Mil 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
con.Open()
MsgBox(TitularTextBox.Text) ' Está bien: AMG
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
MsgBox("1...")
Dim cmd As New OleDbCommand(query, con)
MsgBox("2...")
MsgBox(cmd.ExecuteScalar())
Return CInt(cmd.ExecuteScalar()) ' cambia un tipo cadena a un tipo integer
Catch ex As Exception
MessageBox.Show(ex.Message, "Contar registros", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Try
End Function


1 respuesta

baldomero123 Mensajes enviados 9 Fecha de inscripción viernes, 25 de noviembre de 2011 Estatus Miembro Última intervención jueves, 26 de enero de 2012
25 nov 2011 a las 23:28
Para quien le pueda servir, lo he rehecho y lo que pongo ahora funciona:
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
0