Consulta parametrizada

04/05/2005 - 17:56 por Solitario | Informe spam
Por que me manda este error:

Must declare the variable '@tp'.

En la siguiente consulta:
dsHorario = New DataSet()
da = New OleDb.OleDbDataAdapter("Select tipo_periodo, num_periodo From
horario Where tipo_periodo = @tp ", cadenaConexion)
Dim myParam As OleDb.OleDbParameter = da.SelectCommand.Parameters.Add(New
OleDb.OleDbParameter("@tp", OleDbType.TinyInt, 1))
myParam.Value = vtp
da.Fill(dsHorario)

Si se supone que lo estoy declarando con add

Preguntas similare

Leer las respuestas

#1 Carlos Durán Urenda
04/05/2005 - 19:45 | Informe spam
en tu instrucción Select debes utilizar el parametro como "?", es decir

dsHorario = New DataSet()
da = New OleDb.OleDbDataAdapter("Select tipo_periodo, num_periodo From
horario Where tipo_periodo = ?", cadenaConexion)
Dim myParam As OleDb.OleDbParameter = da.SelectCommand.Parameters.Add(New
OleDb.OleDbParameter("TipoPeriodo", OleDbType.TinyInt, 1))
myParam.Value = vtp
da.Fill(dsHorario)


Saludos
Carlos Durán


"Solitario" escribió en el mensaje
news:
Por que me manda este error:

Must declare the variable '@tp'.

En la siguiente consulta:
dsHorario = New DataSet()
da = New OleDb.OleDbDataAdapter("Select tipo_periodo, num_periodo From
horario Where tipo_periodo = @tp ", cadenaConexion)
Dim myParam As OleDb.OleDbParameter = da.SelectCommand.Parameters.Add(New
OleDb.OleDbParameter("@tp", OleDbType.TinyInt, 1))
myParam.Value = vtp
da.Fill(dsHorario)

Si se supone que lo estoy declarando con add

Respuesta Responder a este mensaje
#2 Solitario
05/05/2005 - 17:24 | Informe spam
Si eso ya lo hice pero me supongo que si utilizas el mismo parametro en
diferentes partes de la consulta hay que agregarlo tantas veces como aparezca
y es lo que no queria hacer('pense que habia una forma de especificar el
parametro') y ademas si hay mas de un parametro hay que agregarlos en el
orden especificado ejemplo:

da = New OleDb.OleDbDataAdapter("Select tipo_periodo, num_periodo, semana
From horario
Where (tipo_periodo = ? and num_periodo00) or semana=1 or (tipo_periodo =
? and num_periodo 00)", cadenaConexion)
Dim myParam As OleDb.OleDbParameter = da.SelectCommand.Parameters.Add
(New
OleDb.OleDbParameter("TipoPeriodo", OleDbType.TinyInt, 1))
myParam.Value = vtp
OleDb.OleDbParameter("TipoPeriodo1", OleDbType.TinyInt, 1))
myParam.Value = vtp
da.Fill(dsHorario)



es un decir en la consulta por que el where podria ser asi para no
utilizarlo dos veces

Where (tipo_periodo = ? and (num_periodo00 or num_periodo 00)) or
semana=1

Solo es un decir por si en una consulta apareciera mas de una vez el mismo
parametro


"Carlos Durán Urenda" escribió:

en tu instrucción Select debes utilizar el parametro como "?", es decir

dsHorario = New DataSet()
da = New OleDb.OleDbDataAdapter("Select tipo_periodo, num_periodo From
horario Where tipo_periodo = ?", cadenaConexion)
Dim myParam As OleDb.OleDbParameter = da.SelectCommand.Parameters.Add(New
OleDb.OleDbParameter("TipoPeriodo", OleDbType.TinyInt, 1))
myParam.Value = vtp
da.Fill(dsHorario)


Saludos
Carlos Durán


"Solitario" escribió en el mensaje
news:
> Por que me manda este error:
>
> Must declare the variable '@tp'.
>
> En la siguiente consulta:
> dsHorario = New DataSet()
> da = New OleDb.OleDbDataAdapter("Select tipo_periodo, num_periodo From
> horario Where tipo_periodo = @tp ", cadenaConexion)
> Dim myParam As OleDb.OleDbParameter = da.SelectCommand.Parameters.Add(New
> OleDb.OleDbParameter("@tp", OleDbType.TinyInt, 1))
> myParam.Value = vtp
> da.Fill(dsHorario)
>
> Si se supone que lo estoy declarando con add
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida