
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.
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


0