jun 4 2011
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<<<







jun 04, 2011 @ 12:39:24
Solo una observación, no me convence que en el módulo de reglas de negocio, vayan las consultas sql, directamente.
Por lo demás, me parece una buena práctica separar todo en sub proyectos, y comentar conforme vayas programando, felicitaciones Fredy.
PD: Medio raro tu formulario, un radio button para cada accion… no termina de encajar en mi paradigma de ihc jeje
jun 20, 2011 @ 14:14:11
Hola felicitaciones muy buen post!! estoy comensando con Visual Basic y ps les agradeceria si pueden postear uno igual pero con vb
Gracias!!!!