¿Duda en Consultas SQL en visual studio 2010?

Tengo una duda con estas sentencia, bueno antes de ponerla explico un
poco que es lo que quiero que haga bien que en mi base de datos busque como 7
o 8 registros pero bueno por ahora solo quiero 3 pero resulta que solo me
devuelve 2 y no se por que y otra duda cuando estoy asignando cada
valor devuelto en cada variable que tengo solo lo haces cuando tengo una solo
restricción en el where y no se por por que
bueno la sentencia es esta:
Dim
fuerzas As String

Dim
f1, f2, f3
As String
f1 = ""
f2 = ""
fuerzas = ""
Conexión.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\AAPOVIC\Elecciones.mdb"
Conexión.Open()
sqlcon.CommandText
= sqlcon.CommandText
= "Select F1, F2, F3 from Elecciones Where elección='" + Tipoelec.Text +
"' And año='" + Año1.Text + "'"
sqlcon.Connection
= Conexión
Data = sqlcon.ExecuteReader
While Data.Read()
fuerzas = Data.GetString(0)
If f1 = "" Then
f1 = fuerzas
ElseIf fuerzas <> f1 Then
f2 = fuerzas
ElseIf fuerzas <> f1 And fuerzas <> f2 Then
f3
= fuerzas
End If
End While
Data. Close()
Conexión. Close()
Y por decir si le quito el de tipoelec si entra en el while y si se lo
dejo no entra y no se por qué y solo me da 2 valores no se como hacerle o
esta mal algo?

1 respuesta

Respuesta
1

La verdad, la exposición de tu pregunta está muy confusa. Pero de lo que creo haber entendido aquí no se basa en problemas de tu código, si no de los datos que tienes en la tabla de la BD.

Todo indica que el condicionante que pones "Tipoelec" solo hace cumplir a esos registros.

Lo que deberías hacer es poner un punto de quiebre en esa sentencia y depurar y ver que trae el Select y ver los datos que tienes en la tabla si corresponden.

Además miras como haz construido el Select, a veces poner comillas a un valor numérico no da como resultado lo que esperamos.

ok pero si no le pongo comillas al numérico me manda un error que falta el constructor y como puedo ver lo que trae el select

Pégame aquí la cadena Select con el valor numérico y que te da fallas.

lo siento no me marca error mas bien se salta la linea donde asigna los valores pero el código es este

Dim fuerzas As String
Dim f1, f2, f3, f1v, f2v, f3v As String
f1 = ""
f2 = ""
fuerzas = ""
Conexión.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\AAPOVIC\Elecciones.mdb"
Conexión.Open()
sqlcon.CommandText = " Select F1, F2, F3 from Elecciones Where elección='" + Tipoelec.Text + "' And año=" + Año1.Text + "And sve_secc=" + 1095
sqlcon.Connection = Conexión
Data = sqlcon.ExecuteReader


a partir de a qui es donde tengo duda por que esto se lo salta

If Data.Read Then ----------------- lo lee y se pasa asta el end
f1 = Data(0).ToString
f1v = Data(1).ToString
f2 = Data(2).ToString
f2v = Data(3).ToString
f3 = Data(4).ToString
f3v = Data(5).ToString
End If----------------------------------------hasta aquí lo demás si lo hace
Data.Close()
Conexión.Close()
ConsultaInd.Show()
End Sub

Eso ya lo entendí.

Necesito el Select solamente "formado" es decir:

Select F1, F2, F3 from Elecciones Where elección='Dato' And año=Dato And sve_secc=1095

Como te quede a ti en el VB. Es por eso que te dije que pusieras un interruptor y veas en la ventana de inmediato el valor de CommandText

ok creo entenderte

aver sale esto

CommandText = " Select F1, F2, F3 from Elecciones Where elección='Elecciones de Ayuntamiento' And año=1993"

sale esto

pero cuando es no mas con año por que con el de sve_secc=1095 dice que los valores booleanos no son compatibles o algo así y no pasa de ai pero con e años sale eso

¿El campo "elección" se llama así con acento?

¿El campo "año" se llama así con la Ñ?

Ponme el error que te da de los valores booleanos.

Cambia los campos con acentos por sin ellos y la Ñ elimínala.

mira el campo elección no lleva acento y el año si esta bien y el error es este

La conversión de la cadena " Select F1, F2, F3 from Elección" en el tipo 'Double' no es válida.

y la sentencia sql es esta

sqlcon.CommandText = " Select F1, F2, F3 from Elecciones Where elección='" + Tipoelec.Text + "' And año=" + Año1.Text + "And cve_secc=" + 1095

este no que cres que es no no tiene acento el de elección

Puedes decirme en que linea exactamente da el error de conversión a Double

me sale exacta mente cuando va a leer la sentencia sql en sqlcon.CommandText en esa parte me marca erro

Muéstrame cuando inicializas la variable "sqlcon"

mmm no entiendo bien pero bueno te pongo todo lo que tiene durante su ejecución desde el principio

sqlcon.CommandText = ""

sqlcon = {System.Data.OleDb.OleDbCommand}

{"La conversión de la cadena " Select F1, F2, F3 from Elección" en el tipo 'Double' no es válida."} y de ay no pasa no asigna nada y el sqlcon.CommandText = "" es asi

Puedes darme tu correo para escribirte, me parece que hay algo que tu no inicializas bien.

Pásame tu correo para escribirte y me mandes el código fuente de tu programa.

este ya gracias ya lo resolbi ja ja solo era un error de escritura y poner bien una sentencia pero a ora tengo otra duda como puedo hacer gráficas con el control Chart en visual studio 2010 o no se si me puede pasar un tutorial

Cierra y valora mi ayuda y abres otra pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas