Está en la página 1de 21

INSTITUTO TECNOLGICO DE ESTUDIOS SUPERIORES DE LOS

CABOS

Por una patria con sabidura y espritu de progreso

PROGRAMACION DE BASE DE DATOS


CARRERA:
Ingeniera en Sistemas Computacionales
8IS-01M
ALUMNOS:
Vsquez de la Cruz Uriel

DOCENTE:
Sergio Ivn Escalante Soto
San Jos del Cabo, B.C.S.

11 de Febrero del 2016

Cadena de conexin de C# con SQL


Conectar nuestras aplicaciones C# a una base de datos en SQL Server es uno de
los requerimientos ms importantes de funcionalidad en nuestros proyectos. Por
eso hoy aprenderemos una forma de realizar esta conexin y veremos ejemplos
que nos guen a travs de todo el artculo.
En primera instancia vers cmo abrir la conexin al servidor, luego aprenders
a ejecutar comandos, tambin a mostrar los datos de una consulta en un
DataGridView y finalmente comprenders la ejecucin de procedimientos
almacenados.

CREAR UNA CONEXIN CON SQLCONNECTION

Lo primero es crear una conexin de red entre la aplicacin y el servidor de bases


de datos. Para ello usaremos la clase SqlConnection del namespace SqlClient.
Este espacio de nombres es el encargado de gestionar los datos en SQL Server
hacia el Framework .NET. Es solo declarar un nuevo objeto de conexin similar la
siguiente linea de cdigo:
using System.Data.SqlClient;
...
SqlConnection con = new SqlConnection();
Para nuestro objeto con es de vital importancia los datos que abren la conexin,
los cuales estarn almacenados en un atributo llamado ConnectionString de tipo
String. Para establecerlo podemos usar el constructor o asignrselo luego de
la inicializacin.
Veamos:

string datosConexion = "Data Source=localhost;"


+"Initial Catalog=facturacion;Integrated Security=true;";

SqlConnection con = new SqlConnection();


con.ConnectionString = datosConexion;

La cadena de conexin indica las caractersticas necesarias para la conexin.


Veamos la definicin de algunas:
Data Source: Se refiere al origen de datos, nombre del servidor o direccin

donde se encuentra la base de datos.


Initial Catalog: Es el nombre de la base de datos a la que deseamos

acceder.
Integrated Security: Si usas true el ingreso a la base de datos se autentica
con los permisos del usuarios actual de Windows, si usas false, debes indicar en
la cadena el nombre de usuario(UID) y la contrasea(PWD).
Existen mas caractersticas, pero por ahora estn fuera del alcance de este
articulo. Puedes consultarlas luego por tu cuenta.
Luego de establecer la cadena de conexin procedemos a abrir la conexin hacia
el servidor con el mtodo Open():

con.Open();
Al realizar todas las operaciones sobre nuestra base de datos es importante cerrar
la conexin con el mtodo Close():

con.Close();
Otra alternativa para asegurar que la conexin se cierra es usando un bloque
using en C#:

using (SqlConnection con = new SqlConnection(datoConexion))


{
con.Open();
//Bloque de instrucciones sobre la base de datos
}
Al finalizar dicho bloque la conexin se cierra inmediatamente, liberndonos de
esta responsabilidad.

Cadena de conexin de Java con SQL


En este post entramos a lo que es Java Avanzado. Para iniciar con este apartado
lo primero que realizaremos es la conexin de Java y SQL Server para poder
trabajar con un motor de base de datos y empezar con el desarrollo de software
real y as tambin almacenar los datos y posteriormente obtener reportes de ellos.
Para estas publicaciones se realiz una base de datos la cual se pasar un
backup con lo que trabajaremos slo les hara falta importarlo y luego realizar
nuestro trabajo que es la parte de programacin sobre Java.

Preparando el Campo de Desarrollo


Antes de empezar realizaremos lo siguiente.
-Descargar el backup de la base de datos aqu.
-Creamos la base de datos DBVentas
-Importamos el backup a a nuestra base de datos creada DBVentas en nuestro
motor de base de datos SQL Server.
-Creamos nuestro proyecto y creamos las clases respectivas.

-Descargamos el jar para la conexin. Lo podemos descargar aqu.


-Agregamos el Jar a nuestro proyecto.

Habiendo realizado todo esto, ya tenemos preparado nuestro entorno para poder
realizar el cdigo respectivo para nuestra conexin.
Cdigo de la Clase "ConexionDB"
package ConexionDB;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;
/**
*
* @author Kevin Arnold
*/
public class ConexionDB {
public static Connection GetConnection()
{
Connection conexion=null;
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url =
"jdbc:sqlserver://localhost;databaseName=DBVentas;user=sa;password=sa;";

conexion= DriverManager.getConnection(url);
}
catch(ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(null, ex, "Error1 en la Conexin con la
BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE);
conexion=null;
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, ex, "Error2 en la Conexin con la
BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE);
conexion=null;
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex, "Error3 en la Conexin con la
BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE);
conexion=null;
}
finally
{
return conexion;
}
}
}
Esta clase es la que realizar la conexin con la base de datos, como se puede
ver tenemos un mtodo que retorna un tipo Connection el cual se recuperar
desde cualquier clase que desee acceder a este mtodo. De esta forma tenemos
nuestra clase conexin accesible desde cualquier capa que podamos crear sin la
necesidad de programarlo ms de una vez.
Cdigo de la clase "Main"
package ConexionDB;
import java.sql.Connection;
import javax.swing.JOptionPane;
/**
*
* @author Kevin Arnold
*/
public class Main {
public static void main(String[] args)

{
Connection miConexion;
miConexion=ConexionDB.GetConnection();
if(miConexion!=null)
{
JOptionPane.showMessageDialog(null, "Conexin Realizada
Correctamente");
}
}
}
Para este caso que es un ejemplo de slo la conexin con la Base de Datos,
realizamos un simple main donde hacemos una llamada a la clase "ConexionDB"
y recuperamos el valor que retorna y si es diferente a "null" eso indica que la
conexin se realiz correctamente.
Tener en cuenta que se debe manejar de una forma adecuada las excepciones
que podra darse en la conexin, como se puede ver se maneja varios tipos de
excepciones en la clase "ConexionDB".
Compilacin del programa
Realizado todo esto el programa debera compilar realizando la conexin y
lanzando un mensaje indicando que se realiz la conexin correctamente o un
mensaje donde indique si surgi alguna excepcin.
Si todo se realiz correctamente, el software debera correr de la siguiente forma.

Como se puede ver, esto indica que la conexin se realiz correctamente.

Cadena de conexin de PHP con SQL


Casi todos los lenguajes de programacin vienen de la mano de un gestor de
bases de datos con el cual se entienden muy bien, tal es el caso de PHP y MySql,
o ASP y SQL Server. Pero en algunos casos seguramente tendremos que hacer
cosas como las del ttulo de esta entrada, sea bien por requisitos laborales,
conveniencia o por cualquier motivo. Pues bien esto es posible y no considero que
sea tan descabellado.
Para aquellos interesados en esta travesa les presento el siguiente script php que
realiza la conexin a una base de datos de Microsoft SQL Server y lista datos de
una tabla.
<?php
//Cadena de conexin
$connection_string = 'DRIVER={SQL
Server};SERVER=MSSQLSVR;DATABASE=EmpleadosBd';
$user = 'sa';
$pass = '12345678';
//Establecemos la conexin
$connection = odbc_connect($connection_string, $user, $pass );
//Ejecutamos una consulta de seleccin, en este caso para efectos de prueba el
nombre de los empleados
$result = odbc_exec($connection, 'select nombres from Empleados');
//Recorremos la variable $result, la cual es un arreglo asociativo de los registros
devueltos por la consulta
//Procedemos a imprimir en cada iteracin
while(odbc_fetch_row($result))
{
$Var1 = odbc_result($result, 'nombres');

echo "Var1: " . $Var1 . "<br>";


}
?>

Cadena de conexin de Visual Basic con SQL


La cadena de conexin puede ser de dos formas distintas, segn se indique la
autenticacin de Windows o la de SQL Server.
En la primera no hay que indicar ni usuario ni password, en la segunda si que hay
que indicar esos dos datos.
Las bases de datos de SQL Server a las que podemos acceder con esa cadena de
conexin pueden ser de cualquier versin, al menos yo lo he probado con las
versiones 7.0, 2000 y 2005, en los tres casos usando ADO.NET.
En los siguientes ejemplos usaremos ciertos valores que tendrs que indicar
segn tus preferencias, me refiero al nombre del servidor de SQL Server y a la
base de datos a la que quieres acceder, adems del nombre del usuario o la
contrasea.
En esos casos estarn indicados con letra en negrita y cursiva, el resto es texto
"fijo" y que siempre podrs usar.
Esos valores sern los siguientes:
Valor

Descripcin

ServidorSQL El nombre del servidor de SQL Server al que quieres


acceder.
Los valores que puede tener depender de tu
configuracin de SQL Server, pero estos son los valores
ms comunes:

Valor

Descripcin

Uno de estos valores indicar


que quieres acceder a la
instancia predeterminada de
SQL Server que haya en el
equipo en el que se est
ejecutando la aplicacin.

(local)

Es preferible usar (local).


NombreEquipo

El nombre del equipo en el


que se est usando la
aplicacin.
Es preferible usar (local) para
que no influya el equipo en el
que se ejecute el programa.

NombreDNS

Un nombre DNS es decir, un


nombre que despus
"resolver" una direccin IP,
por ejemplo, el nombre de un
servidor de
Internet: nombreDominio.com.

DireccinIP

Una direccin IP en la que


est el servidor de SQL al que
queremos acceder, esto vale
para servidores que estn en
equipos remotos.
Por defecto se utilizar el
puerto predeterminado: 1433

DireccinIP, Puerto

La direccin IP del servidor de


IP al que se acceder por el
puerto indicado.
Por defecto el puerto de SQL
Server es el 1433.

ServidorSQL/Instanci Si no queremos usar la


a
instancia predeterminada del
servidor de SQL Server
indicado (usando cualquiera
de los cuatro mtodos
anteriores), podemos indicarlo
despus del nombre del
servidor separado con un \.
Por ejemplo, en Visual
Studio .NET (2002 y 2003) se
crea una instancia llamada
NETSDK, para acceder a esa
instancia
usaremos: (local)\NETSDK.
En Visual Studio 2005 se suele
instalar el SQL Server 2005
Express y se crea una

instancia llamada
SQLEXPRESS, para acceder
a las bases de datos de esa
instancia,
usaremos: (local)\SQLEXPRE
SS.

BaseDatos

El nombre de la base de datos de SQL Server a la que


quieres acceder (no la tabla)

Usuario

El nombre del usuario de la base de datos a la que


quieres acceder.

Contrasea

El password (o contrasea) del usuario indicado.

Cadena de conexin con autenticacin de Windows


Para conectar a una base de datos de SQL Server con autenticacin de Windows,
la cadena de conexin ser:
Data Source = ServidorSQL; Initial Catalog = BaseDatos; Integrated Security =
True

Cadena de conexin con autenticacin de SQL Server


Para conectar a una base de datos de SQL Server usando autenticacin del
propio SQL Server, la cadena de conexin ser:
data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario;
password = Contrasea

Indicar una base de datos que est en un servidor "remoto"

Para acceder a una base de datos que est en un servidor remoto, es decir en
otro equipo, debemos usar cualquiera de las dos cadenas de conexin que
hemos visto antes, aunque lo normal ser que se use la segunda en la que se
indica el nombre del usuario y la contrasea.
Esto se suele usar cuando estamos en una pgina Web o bien si queremos
acceder desde una aplicacin de escritorio (Windows.Forms), pero la base de
datos no est en nuestro equipo.
El cdigo podra ser el siguiente, y puedes usar una direccin IP o el nombre de
un dominio (DNS) para indicar el nombre del servidor de SQL Server:
data source = ServidorSQL; initial catalog = BaseDatos; user id = Usuario;
password = Contrasea

Conectar usando cdigo de ADO.NET


Lo habitual es que usemos dos tipos de "conexiones", una usando un objeto
DataAdapter y la otra usando un objeto Connection. Esta ltima es la que
debemos usar si el acceso lo haremos por medio de un objeto Command en lugar
del DataAdapter, por ejemplo para acceder a un procedimiento almacenado.
Pero para mantener el ejemplo simple, solo mostrar cmo conectar usando el
SqlDataAdapter en el que usaremos un objeto DataTable para traer los datos, y
esos datos los mostraremos en un DataGrid o un GridView como es el caso del
cdigo mostrado.
Este mismo cdigo ser vlido tanto para una aplicacin de Windows o una
pgina Web.

Conectar usando un objeto SqlDataAdapter


Cuando usamos un DataAdapter no necesitamos usar un objeto del tipo
SqlCommand, ya que el adaptador se encarga de todo.
El cdigo para Visual Basic y C# sera el siguiente:

Imports System.Data
Imports System.Data.SqlClient

Dim sCnn As String


sCnn = "data source = ServidorSQL; initial catalog = BaseDatos; user id =
Usuario; password = Contrasea"
Dim sSel As String = "SELECT * FROM NombreTabla"
Dim da As SqlDataAdapter
Dim dt As New DataTable
Try
da = New SqlDataAdapter(sSel, sCnn)
da.Fill(dt)
Me.GridView1.DataSource = dt
Me.GridView1.DataBind()
LabelInfo.Text = String.Format("Total datos en la tabla: {0}", dt.Rows.Count)
Catch ex As Exception
LabelInfo.Text = "Error: " & ex.Message
End Try

using System.Data;
using System.Data.SqlClient;

string sCnn;
sCnn = "data source = ServidorSQL; initial catalog = BaseDatos; user id =
Usuario; password = Contrasea";

string sSel = "SELECT * FROM NombreTabla";


SqlDataAdapter da;
DataTable dt = new DataTable();
try
{
da = new SqlDataAdapter(sSel, sCnn);
da.Fill(dt);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
LabelInfo.Text = String.Format("Total datos en la tabla: {0}", dt.Rows.Count);
}
catch(Exception ex)
{
LabelInfo.Text = "Error: " + ex.Message;
}

Cadena de conexin de C# con Mysql


MySqlConnection conexion = new MySqlConnection();
conexion.ConnectionString =
"Server=Servidor;Database=Nombre_de_la_base_de_datos;
Uid=Nombre_de_usuario;Pwd=contrasea;";
conexion.Open();

Cadena de conexin de PHP con Mysql


resource mysql_connect ([ string $server = ini_get("mysql.default_host") [, string
$username = ini_get("mysql.default_user") [, string $password =
ini_get("mysql.default_password") [, bool$new_link = false [, int $client_flags =
0 ]]]]] )
<?php
$enlace = mysql_connect('localhost', 'usuario_mysql', 'contrasea_mysql');
if (!$enlace) {
die('No pudo conectarse: ' . mysql_error());
}
echo 'Conectado satisfactoriamente';
mysql_close($enlace);
?>
<?php
// nos conectamos a ejemplo.com y al puerto 3307
$enlace = mysql_connect('ejemplo.com:3307', 'usuario_mysql',
'contrasea_mysql');
if (!$enlace) {
die('No pudo conectarse: ' . mysql_error());
}

echo 'Conectado satisfactoriamente';


mysql_close($enlace);

// nos conectamos a ejemplo.com y al puerto 3307


$enlace = mysql_connect('127.0.0.1:3307', 'usuario_mysql', 'contrasea_mysql');
if (!$enlace) {
die('No pudo conectarse: ' . mysql_error());
}
echo 'Conectado satisfactoriamente';
mysql_close($enlace);
?>

Cadena de conexin de Visual Basic con Mysql

Imports MySql.Data.MySqlClient
Y declaramos una variable global para la conexin:
Friend conexion As MySqlConnection
Luego en el evento Clic del botn que agregamos, declaramos tres variables que
harn referencia a los datos de conexin.
Try
servidor = ServerTxt.Text
usuario = UsuarioTxt.Text
pswd = pswdTxt.Text
Luego creamos un objeto de la variable conexin para trabajar con l. Y luego por
medio de un String agregamos todos los datos de conexin proporcionados por las
variables.

conexion = New MySqlConnection()


conexion.ConnectionString = "server=" & ServerTxt.Text & ";" & "user id=" &
UsuarioTxt.Text & ";" & "password=" & pswdTxt.Text & ";"
conexion.Open()
MessageBox.Show("Conectado al servidor")
Por ltimo terminamos la gestin de errores, por si la conexin no se realiza sale
un mensaje de error. As evitamos comportamientos inesperados.
Catch ex As MySqlException
MessageBox.Show("No se ha podido conectar al servidor")
End Try

Por ltimo terminamos la gestin de errores, por si la conexin no se realiza sale


un mensaje de error. As evitamos comportamientos inesperados.
Catch ex As MySqlException
MessageBox.Show("No se ha podido conectar al servidor")
End Try
El cdigo completo dentro del evento Click debera quedar como este:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button2.Click
Try
conexion = New MySqlConnection()
conexion.ConnectionString = "server=" & ServerTxt.Text & ";" & "user id="
& UsuarioTxt.Text & ";" & "password=" & pswdTxt.Text & ";"
conexion.Open()
MessageBox.Show("Conectado al servidor")
Catch ex As MySqlException

MessageBox.Show("No se ha podido conectar al servidor")


End Try
End Sub

Cadena de conexin de Java con Mysql


package ConexionDB;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

/**
*
* @author Kevin Arnold
*/
public class ConexionDB {

public static Connection GetConnection()


{
Connection conexion=null;

try

{
Class.forName("com.mysql.jdbc.Driver");
String servidor = "jdbc:mysql://localhost/DBVentas";
String usuarioDB="root";
String passwordDB="030191";
conexion=
DriverManager.getConnection(servidor,usuarioDB,passwordDB);
}
catch(ClassNotFoundException ex)
{
JOptionPane.showMessageDialog(null, ex, "Error1 en la Conexin con la
BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE);
conexion=null;
}
catch(SQLException ex)
{
JOptionPane.showMessageDialog(null, ex, "Error2 en la Conexin con la
BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE);
conexion=null;
}
catch(Exception ex)
{
JOptionPane.showMessageDialog(null, ex, "Error3 en la Conexin con la
BD "+ex.getMessage(), JOptionPane.ERROR_MESSAGE);
conexion=null;
}
finally

{
return conexion;
}
}
}

Referencias
http://www.hermosaprogramacion.com/2014/07/sql-server-c-sharp-conectar-como/

http://todoenjava.blogspot.mx/2013/02/conexion-base-de-datos-sql-server-con.html

http://luiscalderon.ing-sistemas.com/blog/conectar-a-sql-server-desde-php/

http://www.elguille.info/NET/ADONET/cadena_de_conexion_para_conectar_a_una
_base_de_sql_server.htm

https://sites.google.com/site/visualnet10/conectar-una-base-de-datos-de-mysql-envisual-basic

http://php.net/manual/es/function.mysql-connect.php

http://www.hermosaprogramacion.com/2014/07/mysql-java-conectar-como/