2 parametros Para un Store Procedure

13/04/2005 - 18:10 por Rodia | Informe spam
Hola a todos, estoy programando y usando Store
Procedures, hasta el momento solo habia usado ningun
parametro o un parametro, pero hoy tengo que programar
con dos parametros, lo primero que hice fue crear dos
variables de tipo sqlparameter,les doy los valores a cada
parametro y loa agrego al data adapter

da.SelectCommand.Parameters.Add(param1)
da.SelectCommand.Parameters.Add(param2)

Pero aqui me manda un error
"Exepcion no controlada sqlexeption"

da.Fill(dsClientes, "CLIENTES")

Si alguien sabe como hacerle para poder enviar dos
parametros aqui dejo el codigo completo, para que me
digan donde esta el error o si me falata algo

Gracias


Public Sub BuscaClientesPorNombreYTipo(ByVal
CClientesNombre As Windows.Forms.DataGrid,
ByVal Nombre As String, ByVal Tipo As String)

Dim dsClientes As New DataSet
Dim da As New SqlClient.SqlDataAdapter
Dim param1 As New SqlClient.SqlParameter
("@NombreCliente", SqlDbType.VarChar = 255)
Dim param2 As New SqlClient.SqlParameter("@Tipo",
SqlDbType.VarChar = 6)

da.SelectCommand = New SqlClient.SqlCommand
da.SelectCommand.Connection = connCliente
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.CommandText = "ClienteNombreTipo"

param1.Direction = ParameterDirection.Input
param1.Value = Nombre
da.SelectCommand.Parameters.Add(param1)

param2.Direction = ParameterDirection.Input
param2.Value = Tipo
da.SelectCommand.Parameters.Add(param2)

da.Fill(dsClientes, "CLIENTES")

CClientesNombre.DataSource = dsClientes.Tables("CLIENTES")
End Sub

Preguntas similare

Leer las respuestas

#1 A.Poblacion
13/04/2005 - 21:57 | Informe spam
El único error que veo es que has puesto "=" donde tiene que ir una coma, al
crear los parámetros. La forma correcta es esta:

Dim param1 As New SqlClient.SqlParameter
("@NombreCliente", SqlDbType.VarChar, 255)
Dim param2 As New SqlClient.SqlParameter("@Tipo",
SqlDbType.VarChar, 6)



"Rodia" wrote in message
news:06a601c54043$4d1c8b70$
Mostrar la cita
#2 Rodia
13/04/2005 - 22:20 | Informe spam
Gracias por poner atencion a mi mensaje y leerlo, pero
aun asi manda el error, con un parametro no he tenido
problemas pero con dos si y ya cheque el store procedure
con el query analizer y trabaja bien

Mostrar la cita
que ir una coma, al
Mostrar la cita
message
Mostrar la cita
cada
Mostrar la cita
CommandType.StoredProcedure
Mostrar la cita
("CLIENTES")
Mostrar la cita
#3 Martin
14/04/2005 - 01:31 | Informe spam
Lo unico que veo mal es que pones = en lugar de , en la declaracion de los
parametros
Dim param2 As New SqlClient.SqlParameter("@Tipo",
SqlDbType.VarChar = 6), debe der ser
Dim param2 As New SqlClient.SqlParameter("@Tipo",
SqlDbType.VarChar , 6)
y tambien veo mal esta linea
da.SelectCommand = New SqlClient.SqlCommand
Pero en realidad nunca lo he probado asi. Pero mejor prueba con este codigo:
Dim dsClientes As New DataSet
Dim da As New SqlClient.SqlDataAdapter("ClienteNombreTipo",connCliente)
da.SelectCommand.CommandType = CommandType.StoredProcedure
da.SelectCommand.Parameters.Add(New
sqlParameter("@NombreCliente",sqldbtype.Nvarchar,255))
da.SelectCommand.Parameters("@NombreCliente").Value=Nombre
da.SelectCommand.Parameters.Add(New
sqlParameter("@Tipo",sqldbtype.Nvarchar,6))
da.SelectCommand.Parameters("@Tipo").Value=Tipo
Cuando los parametros son Input no es necesario que les pongas la direccion,
porque Input lo toma como un valor por default
da.Fill(dsClientes, "CLIENTES")
CClientesNombre.DataSource = dsClientes.Tables("CLIENTES")
Supongo que CClientesNombre es un DataGrid. Bueno espero que te sirva.

"Rodia" escribió:

Mostrar la cita
Ads by Google
Search Busqueda sugerida