Visual Basic.NET - Utilizar un TextBox.Text en una orden SQL

   
Vista:

Utilizar un TextBox.Text en una orden SQL

Publicado por Baldomero (9 intervenciones) el 23/11/2011 13:06:52
Buenos días:
Agradecería me ayudaran en este problema. Tengo la tabla A con el campo JJ que la tengo presente en el TextBox1.Text. Deseo dar una orden a la tabla B donde también está el campo JJ. Algo así como
sql = "SELECT * FROM B WHERE B.jj = TextBox1.Text"
luego tendría que hacer
MaxRows para saber cuántos registros cumplen las condiciones.
O sea que lo ideal sería
SELECT COUNT titular FROM B B.jj = TextBox1.Text"
pero mi problema es el mismo: que el contenido de TextBox1.Text no pasa a la orden SQL. En VB6.0 estaba la propiedad TextBox1.Value que solucionaba esto, pero no en VB2010.
¿Cómo puedo pasar el valor del texto a la orden SQL?
Me han recomendado emplear JOIN, pero el problema sigue siendo el mismo, que no pasa el texto a la condición. Lo he puesto entre ' ', entre " " y nasti monasti.
¿Me podéis ayudar? Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Utilizar un TextBox.Text en una orden SQL

Publicado por Damian (824 intervenciones) el 25/11/2011 14:08:16
Bueno quiero creer que los dos campos que comparas son de tipo texto.
El código sería así:
1
Select count titular from B where B.jj='" & TextBox1.Text.ToString & "'"

Yo le agregue el ToString pero si no esta debería funcionar igual.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Utilizar un TextBox.Text en una orden SQL

Publicado por Baldomero (9 intervenciones) el 25/11/2011 16:42:47
Gracias por tu respuesta. Me encuentro con el problema de que el SELECT, aun incorporando el TextBox no lo lee. Me explico: En Titulartextbox.text está AMG (hay en la tabla 6 registros afectados)
query = "SELECT COUNT(*) FROM tabla WHERE campo = ' " & Titulartextbox.text & " ' "
respuesta: 0
query = "SELECT COUNT(*) FROM tabla WHERE campo = ' AMG ' "
respuestaz: 6
O sea, que la orden SELECT no lee el Textbox. Da la advertencia: "La función no devuelve un valor en todas las rutas de acceso de código ¿Falta una instrucción Return?"
Aquí traigo el código. Desde la Subrutina Suprimirtitular llamo a la función ObtenerCantidad que me devuelve (sin TextBox) el nro de registros que cumplen la condición; pero que con TextBox siempre me devuelve "cero".
Repito, 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.ToString & " ' " '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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Utilizar un TextBox.Text en una orden SQL

Publicado por Baldomero (9 intervenciones) el 25/11/2011 23:23:33
Al fin funcionó. Lo he empezado de nuevo, por lo que he modificado algo las denominaciones pero el plan es el mismo. 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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Utilizar un TextBox.Text en una orden SQL

Publicado por JUAN MANUEL (1 intervención) el 03/05/2012 20:21:31
Tengo el mismo problema ya intente de muchas maneras que he estado investigando y no logro obtenerlo. Trabajo en Visual Studio 2010 no se si me podrias hechar la mano
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar