c# .net con Mysql (Ejemplo practico) Parte I

17 05 2009

Holas a todos , bueno est post doy inicio, a al creacion de un pekeño sistema programdo en c# .net 2008, este sistemita fue el trabajo final de un curso ne la UNP “Programacion Avanzada“,en le cual me colocaron como nota 18 XD,

Con este pekeño ejemplo trato de explikar lo mas simple posible como se realiza la conexion entre c#.net 2008 y Mysql usando el Conector para .net,el cual no me da una forma grafica pra realizar las diversas consultas, asi q lo programo desde cero XD.

Sin mas floro empesamos : Primero creamos la base de datos en mi caso se llama doctorpacientes

CREATE DATABASE `doctorpacientes` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;

procedemos a  la creacion de las tablas:

  • Consulta

CREATE TABLE IF NOT EXISTS `consulta` (
`idConsulta` int(10) unsigned NOT NULL AUTO_INCREMENT,
`Pacientes_idPacientes` varchar(9) NOT NULL,
`Doctor_idDoctor` varchar(5) NOT NULL,
`fecha` date DEFAULT NULL,
`hora` time DEFAULT NULL,
`costo` float DEFAULT NULL,
PRIMARY KEY (`idConsulta`,`Pacientes_idPacientes`,`Doctor_idDoctor`),
KEY `Consulta_FKIndex1` (`Pacientes_idPacientes`),
KEY `Consulta_FKIndex2` (`Doctor_idDoctor`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

  • Diagnostico

CREATE TABLE IF NOT EXISTS `diagnostico` (
`idDiagnostico` int(11) NOT NULL AUTO_INCREMENT,
`diagnostico` text NOT NULL,
`externos` text NOT NULL,
`fechNuevaCita` date NOT NULL,
`horaNuevaCita` time NOT NULL,
PRIMARY KEY (`idDiagnostico`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

  • Doctor

CREATE TABLE IF NOT EXISTS `doctor` (
`idDoctor` varchar(5) NOT NULL,
`Especialidad_idEspecialidad` varchar(5) NOT NULL,
`name` varchar(50) DEFAULT NULL,
`apeido` varchar(50) DEFAULT NULL,
`turno` varchar(15) NOT NULL,
`diercion` varchar(70) DEFAULT NULL,
`fonofijo` varchar(9) DEFAULT NULL,
`celu` varchar(15) DEFAULT NULL,
PRIMARY KEY (`idDoctor`),
KEY `Doctor_FKIndex1` (`Especialidad_idEspecialidad`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

  • Especialidad 

CREATE TABLE IF NOT EXISTS `especialidad` (
`idEspecialidad` int(11) NOT NULL AUTO_INCREMENT,
`especialidad` varchar(20) NOT NULL,
PRIMARY KEY (`idEspecialidad`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;

  • Paciente

CREATE TABLE IF NOT EXISTS `paciente` (
`idPaciente` varchar(9) NOT NULL,
`nombre` varchar(60) NOT NULL,
`apeido` varchar(60) NOT NULL,
`fechnaci` date NOT NULL,
`direcion` varchar(60) NOT NULL,
`fonofijo` varchar(9) NOT NULL,
`celu` varchar(14) NOT NULL,
PRIMARY KEY (`idPaciente`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
 

 Teniedo las tablas con sus respectivas PK y FK creadas, Programamos  nuestra clases Conexionbd q  es muy importante ya q esta nos va ha permitir realizar laconexion cn nuestro C#.net 2008 y Mysql.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Textusing System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace DoctorPacientesBd{
public class Conexionbd{
static MySqlConnection myConn;
MySqlCommand myCmmd;
MySqlDataAdapter myAdapter;
DataSet dataSet;

//Variables de Srrvidor
string server; //nombre del servidor
string database; //nombre de la base de datos
string uid; //Id del usuario de la basedatos "database" o el user "root"
string pwd; //contracenia

//Variables publicas
public int rows; //numero de filas
public int columns; //numero columnas
public string error; //mensaje de error producido almoneto de realizar un consulta

//*********************************************************************
//metodo Open,este meto se encarga de abrit la conexion retorna un boolean(tru=exito false =fracaso)
public bool Open(String serve, String databas, String ui, String pw){
//resive loparematros servidor,nombre de la base de datos,usuario y password

//asigancionde variables
this.server = serve;
this.database = databas;
this.uid = ui;
this.pwd = pw;

//capturamos las exepciones producidas almoneto de generar laconexion
try{
string strConn = "server=" + server + ";database=" + database + ";uid=" + uid + ";pwd=" + pwd;
myConn = new MySqlConnection(strConn);//creamosla conexion
myConn.Open();//conexion avireta
return true; //verdad conexion exitosa
}
catch (MySqlException exc){
this.error = exc.Message; //capturamos el mensaje producido
return false;//si es falso no se realizola conexion
}
}

//**********************************************
//cerandolas conexion retorna true=conexion cerrada, false=no se puede cerrar la conexion
public bool Close(){
try {
myConn.Close(); //se cierra la conexion
return true;//retorna verdad
}
catch (MySqlException exc){ //ecepcion capturadad
error = exc.Message;//secaptura elmensaje de erro en ,a variable "eroor"
return false;//retona falso
}
}

//************************************************
//este metodo nos permite ejecutar un INSERT,DELETE,UPDATE
//recibe como parametro la sentencia en SQl, INSERT ......
public bool ExecuteNonQuery(string strQuery){
try{
//creacion,y asignacion del objeto MySqlCommand recibe comoparametros la sentencia y la conexion
this.myCmmd = new MySqlCommand(strQuery,myConn);
this. myCmmd.ExecuteNonQuery();//ejecuta la sentencia
return true;//retorna verdad
}
catch (MySqlException exc){
this.error = exc.Message;//capturar el erro y lo asigana a error
return false;retorna false
}
}

//*********************************************
//metodo q ejecuta las consultas, SELECT......., retorna un arreglo deobjetos cn los datos
public object[,] ExecuteReader(string strQuery){
try {
this.dataSet = new DataSet();
this.myAdapter = new MySqlDataAdapter(strQuery, myConn);
this.myAdapter.Fill(dataSet, "tabla");
this.rows = dataSet.Tables["tabla"].Rows.Count;
this.columns =dataSet.Tables["tabla"].Columns.Count;
object[,] returnObjects = new object[rows, columns];
//asigan cada objeto a una posicion del arreglo
for (int i = 0; i < rows; i++){
for (int j = 0; j < columns; j++){
returnObjects[i, j] = this.dataSet.Tables[0].Rows[i][j];
}
}
dataSet.Clear();
return returnObjects;
}
catch (MySqlException exc){
error = exc.Message;
return null;
}
}
}
}


con esto termino la primera parte , de este ejemplo,cualquier duda o comentario no duden en hacerlo..XD

About these ads

Acciones

Information

4 responses

17 12 2009
deiger

muy bueno el material me sirvio mucho se le agradece

23 12 2009
archivos

me gustaria tener los qarchivos completo del sistema ,me urge

23 12 2009
albeferz

ak de dejo el link de la parte final del ejemplo ,
http://www.mediafire.com/?hmmxzkdz2im

28 12 2009
archivos

ME MARCA EEROR ALINGRESAR DATSO EN LA LINEA

this.myCmmd.ExecuteNonQuery();

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s




Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: