consulta en .NET

Iniciado por andaluz, 4 Mayo 2012, 22:59 PM

0 Miembros y 1 Visitante están viendo este tema.

andaluz

Hola a todos, estoy realizando una consulta en .NET de una base de datos de Access. El codigo que he generado es el siguiente:

Código (vbnet) [Seleccionar]

Imports System.Data.OleDb

' me he creado un objeto para establecer la conexión
Public conexion_access As New OleDb.OleDbConnection

' cadena de conexión
conexion_access = New OleDbConnection(" Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\carlos\Escritorio\Proyecto Ingegrado Carlos Barea Grado Superior\base de datos\Arcoclima.mdb")


Ahora este es el código que me he creado con la consulta
Código (vbnet) [Seleccionar]

Private Sub cbb_Marca_Prov_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbb_Marca_Prov.SelectedIndexChanged
       Dim i, j As Integer
       Dim marca_prov, id_prov_comp As String

       For i = 0 To ProveedoresTableAdapter.GetData.Rows.Count - 1
           marca_prov = ProveedoresTableAdapter.GetData.Rows(i).Item(3)

           For j = 0 To CompraTableAdapter.GetData.Rows.Count - 1
               id_prov_comp = CompraTableAdapter.GetData.Rows(j).Item(0)

               txt_Id_Proveedor_compra.Text = id_prov_comp
               Exit For
           Next

           Dim consulta As New OleDbCommand("SELECT Compra.Id_Proveedor FROM  Proveedores", conexion_access)

           conexion_access.Open()
          [color=red] txt_Id_Proveedor_compra.Text = CType(consulta.ExecuteNonQuery(), String)[/color]
       Next
   End Sub


El error me lo da en la linea de color rojo y me dice lo siguiente:
      "No se han especificado valores para algunos de los parámetros requeridos."

Espero que me puedan ayudar a solucionar el problema

Saludos

$Edu$

No veo ninguna linea de color rojo xD

Cambia esto: txt_Id_Proveedor_compra.Text = CType(consulta.ExecuteNonQuery(), String) por:

txt_Id_Proveedor_compra.Text = consulta.ExecuteNonQuery().ToString()

Que es lo mismo y talvez te anda

andaluz

#2
No sale bien, al cambiar el proveedor me deja el mismo Id_proveedor, he cambiado la consulta, porque creo que no estaba bien, esta es la consulta modificada:

Código (vbnet) [Seleccionar]

Dim consulta As New OleDbCommand("SELECT Id_Proveedor FROM  Proveedores WHERE Marca = " & cbb_Marca_Prov.Text, conexion_access)


la he cambiado porque lo que quiero mostrar el el id_proveedor donde la marca sea igual a la elegida en el ComboBox.

Saludos

HdM

Buenas.

@andaluz, efectivamente, la 1ª consulta estaba mal.

Código (vbnet) [Seleccionar]
Dim consulta As New OleDbCommand("SELECT Compra.Id_Proveedor FROM  Proveedores", conexion_access)

Estás seleccionando un campo de la tabla "Compra", tomando como origen la tabla "Proveedores".

De todos modos, no deberías utilizar el método "ExecuteNonQuery", ya que no te devuelve ningún conjunto de datos, sólo el número de registros afectados (un valor numérico entero). Prueba con "ExecuteScalar" (1º mira para qué sirve este método y el que estabas utilizando).

Saludos.

- Nice to see you again -

andaluz

yo lo que quiero hacer el elegir un proveedor y que me ponga el id_proveedor que tiene asignado en la tabla, es algo sencillo en sql, pero al no haberlo implementado nunca en .NET no me termina de salir bien.

andaluz