VB.NET y SQLite, error con parámetros
Publicado por Diego (19 intervenciones) el 12/10/2019 15:41:40
Buen día....
Nunca utilicé SQLite...y me está dando un error de parametros insuficientes...apelo a sus conocimientos
El error dice "Unknow error. Insufficent parameters supplied to the command"
Lo que no logro entender es por qué ante instrucciones practicamente iguales en una se cargan los parametros correctamente y en otras no.
Código correcto: (Elimina un registro)
Código con error (debería devolver una tabla)
Si en lugar de intentar usar parámetros concateno dentro de la instrucción SQL con las propiedades del objeto cliente funciona perfecto, pero la idea es tener mas ordenado el código, ya que algunas instrucciones tienen mas de 20 parámetros y es muy desprolijo hacerlo así.
En definitiva...no se como agregar los parámetros en consultas que devuelven datos, las que ejecutan un insert, update o delete funciona bien, pero en las select no me los toma.
Alguna sugerencia ?
Gracias
Nunca utilicé SQLite...y me está dando un error de parametros insuficientes...apelo a sus conocimientos
El error dice "Unknow error. Insufficent parameters supplied to the command"
Lo que no logro entender es por qué ante instrucciones practicamente iguales en una se cargan los parametros correctamente y en otras no.
Código correcto: (Elimina un registro)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Function ClientesEliminar(ByVal cliente As Clientes) As Boolean
Try
Conectar()
Using conn
Dim cmd As SQLiteCommand = conn.CreateCommand()
cmd.CommandText = "update tbl_clientes set activo=0 where id=@id"
cmd.Parameters.Add(New SQLiteParameter("@id", cliente._id)) ' PARAMETRO CORRECTO
If cmd.ExecuteNonQuery() Then
Desconectar()
Return True
Else
Desconectar()
Return False
End If
End Using
Catch ex As Exception
MsgBox(ex.Message)
Desconectar()
Return False
End Try
End Function
Código con error (debería devolver una tabla)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Function TraerX(ByVal cliente As Clientes) As DataTable
Try
Conectar()
Using conn
Dim cmd As SQLiteCommand = conn.CreateCommand()
cmd.CommandText = "select * from tbl_clientes where id=@id "
cmd.Parameters.Add(New SQLiteParameter("@id", cliente._id))
Dim da As New SQLiteDataAdapter(cmd.CommandText, conn)
Dim datos As New DataSet()
Dim tabla As New DataTable
da.Fill(datos)
Desconectar()
tabla = datos.Tables(0)
Return tabla
End Using
Catch ex As Exception
MsgBox(ex.Message)
Desconectar()
Return Nothing
End Try
End Function
Si en lugar de intentar usar parámetros concateno dentro de la instrucción SQL con las propiedades del objeto cliente funciona perfecto, pero la idea es tener mas ordenado el código, ya que algunas instrucciones tienen mas de 20 parámetros y es muy desprolijo hacerlo así.
En definitiva...no se como agregar los parámetros en consultas que devuelven datos, las que ejecutan un insert, update o delete funciona bien, pero en las select no me los toma.
Alguna sugerencia ?
Gracias
Valora esta pregunta


0