Manejo de Base de datos [SQL] con C-Sharp [C#]


Hola, buenas tardes! como van? Espero que con ánimos de aprender, pues hoy vamos a manejar transacciones a una base de datos usando SQL Server 2008 y C# bajo el poder del IDE de Visual Studio 2010, principalmente se detallará como comenzar con el proyecto, al final de este post podrán descargar las fuentes!
En este ejemplo emplearemos una base de datos [MusicaBD] con una sola tabla[Cancion], trabajaremos a 3 capas: Acceso a datos, Reglas de Negocio, conocido también como la capa lógica y finalmente nuestra Presentación donde van las interfaces, veremos sentencias básicas de sql: select, insert, update, delete, desde la funcionalidad de este ejemplo son: buscar, registrar, actualizar y eliminar;

Armamos el esqueleto del proyecto con nuestro Visual Studio del siguiente modo:

01 . Creamos nuestra biblioteca de clases denominada Acceso a Datos

02. Del mismo modo agregamos un nuevos proyectos: ReglaNegocio
03. Finalmente agregamos una Aplicación de Windows Forms, eso será nuestra capa: Presentación.
04. Ahora click derecho en ReglasNegocio, agregar: “Nuevo Elemento” >>>Archivo de configuración de aplicaciones< << dando como resultado App.config, en este archivo xml definiremos la cadena de conexión a la base de datos y el proveedor ADO.net.

En nuestro formulario


Tenemos:
4 Groupbox: Action Panel – Cancion – Detalles – Control Panel
4 RadioButtons {Permitirán encender/apagar los controles}
8 Labels {Etiquetas de los controles}
4 Buttons {Donde estarán las funciones}
3 TextBoxs {Ingreso de datos}
1 MaskedTextBox {Para que permita únicamente datos numéricos}

La idea es seleccionar una opción del Action Panel, según sea el caso, se habilitará [.Enabled=true;] o deshabilitará [.Enabled=false;] los controles que se requieren para ejecutar dicha elección.

En Acceso a Datos, se encuentran las clases:
BaseDatos -> donde estará la configuración del acceso a la base de datos y su respectivo manejo.
BaseDatosException -> manejo de excepciones

En ReglasNegocio:
Canción ->Atributos {private: int id; string titulo; string interprete; string album;} Set y Get {Públicos} 1 constructor con 3 parámetros {titulo/interprete/album}
CatalogoCanción -> Tiene 3 métodos bool {registrar/modificar/eliminar} un método Cancion, que devuelve al objeto solicitado, estos 4 métodos son tipo public, cabe mencionar que aqui van los querys!.
ReglasNegocioException -> manejo de excepciones

Ahora que tenemos el esqueleto del proyecto, procedemos a configurar!
Comenzando por el App.Config:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <appSettings>
 <!-- El proveedor ADO.NET  -->
 <add key="PROVEEDOR_ADONET" value="System.Data.SqlClient" />
 <!-- La cadena de conexion -->
 <add key="CADENA_CONEXION" value="Data Source=localhost;
 DataBase=MusicaBD;Connect Timeout=30;Integrated Security=True"/>
 </appSettings>
</configuration>

En la clase BaseDatos, para configurar en lo que va con el App.Config, necesitamos System.configuration:

De manera similar, referenciamos Acceso a Datos en ReglasNegocio y éste en Presentación, ubicados en el tab Proyecto.

Haciendo un paréntesis “(” en sql server 2008:
Script para la creación de la base de datos

--CREATE DATABASE MusicaBD
USE [MusicaBD]
GO
--/****** Object:  Table [dbo].[Cancion]    Script Date: 06/04/2011 15:28:01 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Cancion](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Titulo] [varchar](50) NOT NULL,
	[Interprete] [varchar](50) NOT NULL,
	[Album] [varchar](50) NULL,
 CONSTRAINT [PK_Cancion] PRIMARY KEY CLUSTERED
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO

Finalmente  documentado, el proyecto está [ni yo me la creo u.u]

>>>Descargar proyecto<<<