Tengo una aplicacion que funcionaba sobre Access. Ahora estoy migrandola a
SQL Server y he tenido un problema con los parametros de las consultas.
Resulta que al ejecutarlas me dice que los parametros no estan declarados. Lo
unico que he cambiado es la cadena de conexion que ahora usa el provider para
sql en vez de el de access.
Dim connectionString As String = "Provider=sqloledb;Data
Source=(local);Initial Catalog=bbdd;User Id=usu;Password=pass;"
Dim dbConnection As System.Data.IDbConnection = New
System.Data.OleDb.OleDbConnection(connectionString)
Dim queryString As String = "SELECT Entidades.* FROM Entidades WHERE
(Entidades.Codigo = @Codigo)"
Dim dbCommand As System.Data.IDbCommand = New System.Data.OleDb.OleDbCommand()
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection
Dim dbParam_codigo As System.Data.IDataParameter = New
System.Data.OleDb.OleDbParameter()
dbParam_codigo.ParameterName = "@Codigo"
dbParam_codigo.Value = codigo
dbParam_codigo.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_codigo)
Dim dataAdapter As System.Data.IDbDataAdapter = New
System.Data.OleDb.OleDbDataAdapter()
dataAdapter.SelectCommand = dbCommand
Dim dataSet As System.Data.DataSet = New System.Data.DataSet()
dataAdapter.Fill(dataSet)
En este caso el error salta en la ultima linea al realizar el Fill diciendo:
"Debe declarar el parametro @Codigo". El valor que le paso al parametro no es
nulo.
Si uso las clases de SqlClient en vez de las de OleDb todo funciona, pero
por motivos que no vienen al caso no es viable usar SqlClient en mi
aplicacion. Alguna solucion para que funcionen las consultas con parametros
usando las clases OleDb?
Gracias por todo.
Leer las respuestas