Tabla de Contenidos
Conexión y Consultas a SQLCE
Descarga necesaria:
<html><a href=“https://www.microsoft.com/es-es/download/confirmation.aspx?id=30709&6B49FDFB-8E5B-4B07-BC31-15695C5A2143=1” target=“_blank”>Microsoft® SQL Server® Compact 4.0 SP1</a></html>
Archivos a incluir en el proyecto
- System.Data.SqlServerCe.dll
- sqlceer40ES.dll
- sqlceme40.dll
- sqlceqp40.dll
- sqlcese40.dll
Nota: Hay versiones de X86 y X64.
Agregar la referencia en el proyecto:
System.Data.SqlServerCe
Agregar al inicio:
using System.Collections.Generic; using System.Data; using System.Data.SqlServerCe;
Conexión:
public static SqlCeConnection ConexionLocal() { if (File.Exists("RutaBaseDatos")) { StringBuilder CadenaConexion = new StringBuilder(); CadenaConexion.Append("Data Source="); CadenaConexion.Append(RutaBaseLocal); CadenaConexion.Append(";Password="); CadenaConexion.Append("AquiElPassword"); try { SqlCeConnection con = new SqlCeConnection(CadenaConexion.ToString()); CadenaConexion.Clear(); return con; } catch (SqlCeException e) { // Proceso el error; return null; } } else { return null; } }
Ejemplo Consulta:
public static DataTable Consulta() { try { SqlCeConnection Conexion = ConexionLocal(); if (Conexion != null) { string query = "SELECT * FROM Tabla WHERE Campo = @Valor;"; SqlCeCommand cmd = new SqlCeCommand(query, Conexion); cmd.Parameters.AddWithValue("@Valor", "El valor"); Conexion.Open(); SqlCeDataAdapter da = new SqlCeDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); Conexion.Close(); if (dt.Rows.Count >= 1) { return dt; } else { return null; } } else { return null; } } catch (SqlCeException ex) { // Proceso el error; return null; } }
Ejemplo Insertar:
public static bool Agregar(Dictionary<string, string> Datos) { bool retorna = false; try { SqlCeConnection Conexion = ConexionLocal(); if (Conexion != null) { StringBuilder Consulta = new StringBuilder(); Consulta.Append("INSERT INTO NombreTabla "); Consulta.Append("(Campo1,Campo2,Campo3,etc)"); Consulta.Append("Values "); Consulta.Append("(@Cmp1,@Cmp2,@Cmp3,@CmpEtc);"); SqlCeCommand cmd = new SqlCeCommand(Consulta.ToString(), Conexion); cmd.Parameters.Add("@Cmp1", SqlDbType.Int).Value = Datos["Campo1"]; // Suponiendo que queramos obligarle a que sea del tipo INT. cmd.Parameters.AddWithValue("@Cmp2", Datos["Campo2"]); cmd.Parameters.AddWithValue("@Cmp3", Datos["Campo3"]); cmd.Parameters.AddWithValue("@CmpEtc", Datos["etc"]); Datos.Clear(); Conexion.Open(); cmd.ExecuteNonQuery(); Conexion.Close(); Consulta.Clear(); retorna = true; } else { // Proceso el error; } return retorna; } catch (SqlCeException ex) { // Proceso el error; return false; } }
Nota: Los ejemplos hay que adecuarlos a la situación que requiera.