Hola:
Estoy trabajando con SQL Server CE y tengo un problema a la hora de
actualizar una fila que es de tipo Float. Creo que el problema esta
relacionada con el hecho de que el emulador de Pocket PC q utilizo con Visual
Studio se supone que esta en cultura inglesa, y por lo tanto representa los
valores float con un . mientras que en la española se hace con un ,
Total, que tengo estos 2 fragmentos de codigo, para la insercion y para la
actualizacion y mientras la insercion funciona perfectamente la actualizacion
no:
SqlCeCommand comandoSQL =
new SqlCeCommand("INSERT INTO Articulos (Id_Articulo, Nombre, Stock,
NombreProveedor, PrecioActual) VALUES (?, ?, ?, ?, ?)");
comandoSQL.Parameters.Add(new SqlCeParameter("Id_Articulo", SqlDbType.Int));
comandoSQL.Parameters.Add(new SqlCeParameter("Nombre", SqlDbType.NVarChar,
100));
comandoSQL.Parameters.Add(new SqlCeParameter("Stock", SqlDbType.Int));
comandoSQL.Parameters.Add(new SqlCeParameter("NombreProveedor",
SqlDbType.NVarChar, 200));
comandoSQL.Parameters.Add(new SqlCeParameter("PrecioActual",
SqlDbType.Float));
comandoSQL.Parameters["Id_Articulo"].Value = id_Articulo;
comandoSQL.Parameters["Nombre"].Value = nombre;
comandoSQL.Parameters["Stock"].Value = stock;
comandoSQL.Parameters["NombreProveedor"].Value = nombreProveedor;
comandoSQL.Parameters["PrecioActual"].Value = precioActual;
Esa es la inserción y la actualización es asi:
SqlCeCommand comandoSQL = new SqlCeCommand("UPDATE Articulos SET Nombre = ?,
Stock = ?, NombreProveedor = ?, PrecioActual = ? WHERE Id_Articulo = ?");
comandoSQL.Parameters.Add(new SqlCeParameter("Id_Articulo", SqlDbType.Int));
comandoSQL.Parameters.Add(new SqlCeParameter("Nombre", SqlDbType.NVarChar,
100));
comandoSQL.Parameters.Add(new SqlCeParameter("Stock", SqlDbType.Int));
comandoSQL.Parameters.Add(new SqlCeParameter("NombreProveedor",
SqlDbType.NVarChar, 200));
comandoSQL.Parameters.Add(new SqlCeParameter("PrecioActual",
SqlDbType.Float));
comandoSQL.Parameters["Id_Articulo"].Value = id_Articulo;
comandoSQL.Parameters["Nombre"].Value = nombre;
comandoSQL.Parameters["Stock"].Value = stock;
comandoSQL.Parameters["NombreProveedor"].Value = nombreProveedor;
comandoSQL.Parameters["PrecioActual"].Value = precioActual;
Total, que aunque el codigo sea practicamente igual, cuando ejecuto la
inserción todo va perfecto pero con la actualización me salta esta excepcion
al hacer el tipico ExecuteNonQuery();
"Requested conversion is not supported"
No se que puedo hacer, dado que no se si en una PDA "de verdad" la cultura
estaria en español y por tanto no tendria ese tipo de problemas, ya que solo
he utilizado emulador.
Gracias por la información.
Un saludo.
Leer las respuestas