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.


Navegación

<html><a href=“/softwareprogramacion”>Software de programación</a></html>

Ayuda al servidor