Visual Basic.NET - Parametro desde VB a SQL SERVER

 
Vista:
sin imagen de perfil

Parametro desde VB a SQL SERVER

Publicado por John (4 intervenciones) el 14/11/2014 22:42:11
Hola muy buenas tardes,

primero que todo agradecer por la hospitalidad que me han dado por acogerme en vuestro foro.


tengo una problema y quisiera ver una ayuda por parte de UD.

Tengo una Procedimiento almacenado en SQL SERVER con la siguiente Sintaxis:

@Port nvarchar(255)

AS
BEGIN

SET NOCOUNT ON;


SELECT [Port] + '|' + [Service (Via)] + '|' + [Agente] AS Lista,Agente, [Service (Via)] FROM [BD Tarifas Generales]
GROUP BY Agente, [Service (Via)], Zona, Port, [Port] + '|' + [Service (Via)] + '|' + [Agente]
HAVING [Port] + '|' + [Service (Via)] + '|' + [Agente]= @Port


Como ud pueden apreciar tengo una columna creada ( Lista ) y que tiene como fin poder Filtrar desde vb.net a través de un Parámetro y el resultado poder mostrarlo en un datagrid.

ahora, como antecedente, el Parámetro que utilizo contiene el valor de un combobox a modo de ejemplo seria :----->>> (" Malmö | Hamburgo | FairTrade") pero no me devuelve registros.


Lo raro es que en sql server modifico el procedimiento y le asigno el valor manualmente :

SELECT [Port] + '|' + [Service (Via)] + '|' + [Agente] AS Lista,Agente, [Service (Via)] FROM [BD Tarifas Generales]
GROUP BY Agente, [Service (Via)], Zona, Port, [Port] + '|' + [Service (Via)] + '|' + [Agente]
HAVING [Port] + '|' + [Service (Via)] + '|' + [Agente]='Malmö | Hamburgo | FairTrade'


y esta me devuelve los registros.


este es el código que utilizo:


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim Conection As String
Dim Parameter As New SqlClient.SqlParameter
Try

With Parameter

.ParameterName = "@Port"
.SqlDbType = SqlDbType.NVarChar
.Direction = ParameterDirection.Input
.Value = cbmorigen.SelectedValue
End With

Dim Comando As New SqlClient.SqlCommand

Comando.CommandText = "[dbo].[Devuelveagente]"
Comando.CommandType = CommandType.StoredProcedure
Comando.Parameters.Add(Parameter)



Conection = "Server=192.168.1.5;Uid=sa1;Pwd=Matiasxxxxxxxxxxxxx;Database=Northwind;"

Dim oConn As New SqlClient.SqlConnection
oConn.ConnectionString = Conection

oConn.Open()

Dim da As New SqlClient.SqlDataAdapter(Comando)
Dim dt As New DataTable("Lista")
da.SelectCommand.Connection = oConn

da.Fill(dt)
Me.DataGridView1.DataSource = dt



oConn.Close()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub


Desde ya muchas 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
Imágen de perfil de giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Parametro desde VB a SQL SERVER

Publicado por giancarlo (488 intervenciones) el 19/11/2014 22:23:37
comienzo diciendo que a tu variable parameter, le falta ponerle la longitud, es decir 255
Despues faltaria ver como le pones los items al combobox, solo puedes usar el selectedValue, si usas datasource,displayMenber y Valuemenber.

depura paso a paso tu proyecto para ver donde es donde ocurre el error
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