Etiqueta: SQL Server

Posts sobre SQL Server, comandos de SQL, Management Studio, etc.

  • ejemplo de ExecuteScalar para leer una columna de una tabla

     

    Pues eso… que esto seguro que lo tengo mil veces publicado en mi sitio, pero hoy lo he ido a buscar, y no lo he encontrado de forma concreta, así que… aquí está para que "yo" lo encuentre… jejeje

    ¿Por qué buscaba esto?

    El caso es el siguiente: necesitaba saber el ID (u otro campo) de una tabla de una base de datos de SQL Server Express 2014 (el tipo de base de datos es indiferente siempre que tenga el método que te comento) haciendo una consulta, concretamente usando LIKE en la propia cadena de selección o consulta.

    La consulta es la siguiente:

    String.Format( "SELECT ID FROM Clientes WHERE Nombre LIKE '%{0}%' AND Apellidos LIKE '%{1}%'",

    nombre, apellidos)

    No indico la forma de asignar esa cadena para que uses VB o C#, en el primer caso tendrías que indicar Dim sel = y en el segundo var sel =

    A continuación creamos un objeto del tipo Connection y otro del tipo Command y hacemos una llamada al método ExecuteScalar y el valor que devuelva será (en este caso concreto) el ID que estamos buscando o CERO si no lo ha encontrado.

    Simplificando (sin tratamiento de error y esas cosas), si el acceso a la base de datos es de SQL Server (en este ejemplo en una instancia de SQLEXPRESS) y usamos las clases definidas en System.Data.SqlClient, el código sería algo así:

    Visual Basic:

    Public Shared Function BuscarCliente2(nombre As String, apellidos As String) As Integer
        Dim elID As Integer = 0
    
        Dim sel =
            String.Format(
                "SELECT ID FROM Clientes WHERE Nombre LIKE '%{0}%' AND Apellidos LIKE '%{1}%'",
                nombre, apellidos)
    
        Dim sCon = ".\sqlexpress;Initial Catalog=LaBaseDeDatos;Integrated Security=True"
    
        Using con As New SqlConnection(sCon)
            Dim cmd As New SqlCommand(sel, con)
    
            con.Open()
    
            elID = CInt(cmd.ExecuteScalar())
    
            con.Close()
        End Using
    
        Return elID
    End Function
    

     

    C#:

    public static int BuscarCliente2(string nombre, string apellidos)
    {
        int elID = 0;
    
        var sel =
            String.Format(
                "SELECT ID FROM Clientes WHERE Nombre LIKE '%{0}%' AND Apellidos LIKE '%{1}%'",
                nombre, apellidos);
    
        var sCon = @".\sqlexpress;Initial Catalog=LaBaseDeDatos;Integrated Security=True";
    
        using (SqlConnection con = new SqlConnection(sCon))
        {
            SqlCommand cmd = new SqlCommand(sel, con);
    
            con.Open();
    
            elID = Convert.ToInt32(cmd.ExecuteScalar());
    
            con.Close();
        }
    
        return elID;
    }
    

     

    Y esto es todo amigos… 🙂

     

    Nos vemos.

    Guillermo

    …

  • como conectar a una base de datos de MySQL en un servidor Web desde .NET

     

    Pues eso… hace unos días he estado haciendo una pequeña aplicación para acceder a una base de datos de MySQL creada en un servidor web de Domitienda y voy a aprovechar para comentarte las cosillas que he hecho (como conectar a una BBDD de MySQL, enviar emails, obtener datos de tres tablas diferentes pero que había que relacionar para sacar lo que interesaba, etc.) y la primera fue lo más importante: Conectar con una base de datos de MySQL con Visual Basic .NET (o .NET en general).
    Y esto es lo que te voy a contar en este "artículo" de hoy lunes 13 de abril de 2015.

    Los requisitos

    Lo primero que deberías hacer es descargarte la DLL (librería/biblioteca) de MySQL para usar con Visual Studio, bueno, en realidad lo que yo me iba a bajar el Connector .NET, concretamente la versión 6.9.6 porque decía que la versión 6.7 el Connector/Net no incluye el "MySQL for Visual Studio integration", así que ni me puse a "investigar" a qué se refería, por tanto me bajé el MySQL for Visual Studio, concretamente la versión web community 5.6.23.0 (a la hora de escribir esto está la versión 5.6.24.0).

    Nota:
    El descargar la versión "web community" es porque tenía conexión a internet y así solo tenía que descargar 1.6MB frente a los 286,7MB de la versión off-line.

    Es un MSI installer y te da un montón (o dos o tres o cuatro, pal caso es lo mismo) de opciones, pero solo usé la del Connector o lo que pusiera en las opciones de instalación.

     

    Añadir la referencia de MySql.Data al proyecto

    Una vez instalado, en el proyecto desde el que quieras acceder a la base de datos de MySQL le agregas la referencia correspondiente.
    En mi caso usé la versión 4.5 ya que el proyecto también usaba el .NET Framework 4.5 (ver la figura 1).

    MySqlData referencia
    Figura 1. Referencia al ensamblado de MySql.Data versión 6.9.5

    Y una vez que hemos agregado la referencia al ensamblado MySql.Data ya podemos acceder a las clases de conexión y demás, que están en el espacio de nombres MySql.Data.MySqlClient.

    Y el resto… como de costumbre… pero no te preocupes te voy a poner el código (primero para VB y después para C#) de cómo usar la conexión y acceder a una tabla y demás, pero eso será… ¡ma-ña-na! 🙂

    Bueno, vale, al menos te pondré el código de cómo conectar a la base de datos.

     

    Conectar a la base de datos de MySQL desde Visual Basic .NET

    Yo suelo usar un método en una clase con métodos compartidos (en VB puedes usar un módulo, pero yo uso una clase para después convertir fácilmente el código a C#), el método es una función llamada CadenaConexion que devuelve una cadena con la cadena de conexión generada por la clase ConnectionStringBuilder, en realidad la clase se llama MySqlConnectionStringBuilder, pero si has usado conexión a SQL Server sabrás que en ese caso el nombre es SqlConnectionStringBuilder.

    Para poder acceder a las clases de MySql.Data debes añadir una importación de espacios de nombres a MySql.Data.MySqlClient:

    ' Para Visual Basic:
    Imports MySql.Data.MySqlClient
    
    // Para C#:
    using MySql.Data.MySqlClient;

    Y esta es la definición del método que está en una clase (class) de VB y por eso el método lo he definido como Shared (static en C#) para que lo puedas usar simplemente anteponiendo el nombre de la clase y sin necesidad de crear nuevas instancias ni nada de eso:

    El código del método CadenaConexion para Visual Basic:

    ''' <summary>
    ''' La cadena de conexión a la base de datos
    ''' </summary>
    Public Shared Function CadenaConexion() As String
        Dim csb As New MySqlConnectionStringBuilder
        csb.Server = "mysql3.servidoreswindows.net"
        csb.Database = "nombre_Base_Datos"
        csb.UserID = "nombre_usuario_de_la_base"
        csb.Password = "la_clave_del_usuario_de_la_base"
        csb.IntegratedSecurity = False
    
        Return csb.ConnectionString
    End Function
    
    

    El método CadenaConexion para C#:

    /// <summary>
    /// La cadena de conexión a la base de datos
    /// </summary>
    public static string CadenaConexion()
    {
        MySqlConnectionStringBuilder csb = new MySqlConnectionStringBuilder();
        csb.Server = "mysql3.servidoreswindows.net";
        csb.Database = "nombre_Base_Datos";
        csb.UserID = "nombre_usuario_de_la_base";
        csb.Password = "la_clave_del_usuario_de_la_base";
        csb.IntegratedSecurity = false;
    
        return csb.ConnectionString;
    }
    

     

    Y esto es todo por hoy… mañana (seguramente)… más… 😉

     

    Nos vemos.

    Guillermo

    …

    Este artículo también está publicado en mi sitio:

    http://www.elguille.info/NET/ADONET/MySQL_CadenaConexion.aspx

    ( En realidad obtiene el contenido desde aquí, de mi blog 🙂 )

    …

  • Instalar SQL Server 2012 Management Studio Express

     

    Pues eso… aunque esto mismo ya me pasó con la versión de SQL Server 2008 Express, volvemos a lo mismo… sobre todo por mi falta de memoria, y como sabía que tenía algo escrito en mi blog, lo he buscado, pero como en realidad era una de esas batallitas del agüelo y además la respuesta apuntaba a otro blog que ya no tiene esos pasos, pues… he decidido escribir esto y explicar los pasos a seguir para tener el Management Studio de SQL Server 2012 Express.

     

    Nota:
    Los pasos que te voy a explicar aquí seguramente serán los mismos para la versión 2008 de SQL Server Express

     

    Estos links seguro que te pueden ser de utilidad:

     

    La descarga del SQL Server Management Studio la puedes hacer de forma independiente del resto, de hecho cuando pulsas en el botón de descargar te muestra una ventana con estas opciones (ver figura 1, aunque la forma de seleccionar lo que quieres descargar puede ser diferente a lo mostrado en esa figura), con idea de que descargues sólo lo que necesites, ya que, por ejemplo, si tienes instalado el Visual Studio 2012 ya tendrás algunas cosas que no necesitas reinstalar.

     

    descargas_sql_server_express_2012_01
    Figura 1. Las opciones de descarga de SQL Server Express 2012

     

    Si te sale el error de la figura 2, (a mí me ha salido), es posible que la instalación de SQL Server que ya tengas esté mal… o eso es lo que he encontrado buscando en los foros de Microsoft, aunque en ellos se refería a otras versiones diferentes a la EXPRESS y la recomendación es desinstalar SQL Server y volver a instalarlo… 🙁

     

    sql_server_express_2012_management_studio_01
    Figura 2. Error de que no existe SQLEXPRESS (el acuerdo de licencia)
    (The SQL Server license agreement cannot be located for the selected edition, EXPRESS.)

     

    El problema es que en la instalación que hay hecho el Visual Studio 2012 hay nosecuantamilcosas instaladas (ver figura 3) y… pues… si hay que ir desinstalando todas, no sé yo… :-/

     

    sql_server_express_2012_03
    Figura 3. Las cosas de SQL server 2012 instaladas en mi Windows 8

     

    Pues NO, la solución (al menos en mi caso) ha sido descargar nuevamente el instalador, pero esta vez elegí la versión en inglés (las anteriores eran es español y puede que hubiese conflicto con lo que ya tengo instalado… la verdad es que no lo sé, pero al descargarlo de la página que te he indicado arriba (el primer enlace) y usando el idioma inglés, me ha funcionado o al menos ya no me da ese error (aún estoy instalando).

     

    Una vez descargado el programa de instalación, debes proceder a la instalación y cuando lo pongas a funcionar te mostrará una pantalla como la de la figura 4.

     

    sql_server_express_2012_management_studio_02
    Figura 4. Las opciones de SQL Server Installation Center

     

    Pulsa en la primera opción (como puedes comprobar lo tengo en inglés): New SQL Server stand-alone installation or add features to an existing installation que viene a significar: Nueva instalación o añadir características a una instalación existente.

    Al pulsar en esa opción me ha salido una ventana para aceptar los términos de licencia (License Terms). Después de aceptarlos, me ha mostrado una ventana indicando que hay actualizaciones disponibles (ver la figura 5). En este caso es el SP1 de SQL Server 2012.

     

    sql_server_express_2012_instalar_05
    Figura 5. Product Updates

     

    Me avisa de que necesitará reiniciar el equipo al finalizar la instalación, lo aceptamos y seguimos.

    En la figura 6 vemos que están seleccionadas todas las opciones, pero hay algunas que no se pueden cambiar, supongo que serán de una instalación anterior.

     

    sql_server_express_2012_instalar_06
    Figura 6. Selección de características a instalar

     

    Fíjate en la opción "Management Tools" esa es la que permite instalar, entre otras cosas, el Management Studio. Pulsamos en siguiente.

    Ahora nos pregunta el nombre de la instancia (ver figura 7), dejamos los valores indicados.
    (Es posible que estos pasos no los veas porque ya tengas esto instalado)

     

    sql_server_express_2012_instalar_07
    Figura 7. Instance Configuration

     

    Pulsamos en siguiente y nos pide que configuremos el servidor (figura 8), yo lo he dejado como está. Pulsa en Siguiente.

     

    sql_server_express_2012_instalar_08
    Figura 8. Server Configuration

     

    En el siguiente paso (ver figura 9) nos pide que configuremos el motor de bases de datos, principalmente la configuración del servidor, con idea de saber cómo nos "autenticaremos", yo he elegido el modo mixto (por defecto está la autenticación de Windows). Ahí indica el password (contraseña) del administrador de SQL Server (sa) además de que puedes añadir algún otro usuario de Windows.

     

    sql_server_express_2012_instalar_09
    Figura 9. Database Engine Configuration > Server Configuration

     

    Después de indicar la clave (no lo dejes en blanco, porque seguramente no te lo permitirá) le he dado a siguiente dejando los valores predeterminados de las otras pestañas.

    El siguiente paso es indicar los reportes de error (Error Reporting) a mandar a Microsoft, selecciona lo que quieras o te muestre (si quieres) y pulsa en siguiente.

    Ya no tienes que hacer nada más, salvo esperar a que se instalen las cosas y te pida reiniciar el equipo (figura 10).

     

    sql_server_express_2012_instalar_10
    Figura 10. Complete > Computer restart required

     

    Pulsa en OK (aceptar) y después tendrás que cerrar la ventana del instalador de SQL Server 2012 y la de la configuración.

    A mí no me ha pedido reiniciar, pero… las costumbres son las costumbres y yo después de instalar cosas como estas, si no se reinicia, lo reinicio yo 😉

     

     

    Después de reiniciar… ya está funcionando el SQL Server Management Studio 2012.

     

    Nota:
    Si quieres añadir nuevas características a la instalación de SQL Server 2012 Express, si abres el SQL Server Installation Center (desde el acceso que te crea la instalación) te mostrará algo parecido a lo mostrado en la figura 4, pero con más opciones, pero si eliges la primera opción te pedirá que indiques el directorio de instalación… en mi caso, lo ha eliminado después de hacer la instalación, así que… supongo que habrá que usar nuevamente el instalador y agregar lo que necesitemos…

     

     

    Espero que te sea de utilidad.

     

    Nos vemos.
    Guillermo

    …