Hola a todos, estoy realizando una consulta en .NET de una base de datos de Access. El codigo que he generado es el siguiente:
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
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
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
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:
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
Buenas.
@andaluz, efectivamente, la 1ª consulta estaba mal.
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.
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.
Solucionado!!!!!