/*
 * Created by SharpDevelop.
 * User: Héctor
 * Date: 11/06/2006
 * Time: 21:52
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */

using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using MySql.Data;
using MySql.Data.MySqlClient;
using MySql.Data.Types;

namespace AppWTallerPuntoNet
{
	/// 
	/// Description of FDataGridView.
	/// 
	public partial class FDataGridView
	{
		public MySqlConnection conn;
		public DataSet ds;
		public MySqlDataAdapter da;
		public bool lPrimeraCarga;
		public FDataGridView()
		{
			//
			// The InitializeComponent() call is required for Windows Forms designer support.
			//
			InitializeComponent();
			
			//
			// TODO: Add constructor code after the InitializeComponent() call.
			//
		}
		void FConectar()
		{
		  try
		   {
			string myConnectionString;
			myConnectionString = "server=localhost;"+"" +
								 "uid=root;" +
								 "pwd=;"+
								 "database=bdalmacen1;";
			conn=new  MySql.Data.MySqlClient.MySqlConnection();
									
			conn.ConnectionString = myConnectionString;
			conn.Open();
		   }	
		  catch(MySqlException ex)
		   {	
		  	MessageBox.Show("Se produjo el siguiente error:"+ex.Message);
		   }	
		}
		
		void FDataGridViewLoad(object sender, System.EventArgs e)
		{
			string cadena,cadenaUpdate,cadenaInsert,cadenaDelete;
			FConectar();
			ds = new DataSet();
			
			cadena="SELECT productoid,pdescripcion,punidad,pprecio FROM Producto";
			cadenaInsert="INSERT INTO Producto (productoid,pdescripcion,punidad,pprecio) "+
						"VALUES (?cCodigo,?cDescrip,?cUnidad,?nPrecio)";
			cadenaUpdate="UPDATE producto SET pdescripcion=?cDescrip, punidad=?cUnidad "+
						 "WHERE productoId=?cCodigo";
			cadenaDelete="DELETE FROM Producto WHERE productoId=?cCodigo";
			
			da=new MySqlDataAdapter(cadena ,conn);
			//
			// Sigue el InsertCommand para grabar las 
			// filas que se agreguen al DataSet
			//
			da.InsertCommand=new MySqlCommand(cadenaInsert,conn);
				
			da.InsertCommand.Parameters.Add("?cCodigo",MySql.Data.MySqlClient.MySqlDbType.VarChar,5,"productoId");
			da.InsertCommand.Parameters.Add("?cDescrip",MySql.Data.MySqlClient.MySqlDbType.VarChar,80,"pdescripcion");
			da.InsertCommand.Parameters.Add("?cUnidad",MySql.Data.MySqlClient.MySqlDbType.VarChar,5,"punidad");
			da.InsertCommand.Parameters.Add("?nPrecio",MySql.Data.MySqlClient.MySqlDbType.Decimal,7,"pprecio");
			//
			// Sigue : el UpdateCommand para grabar los 
			// cambios en las filas
			//
			da.UpdateCommand=new MySqlCommand(cadenaUpdate,conn);
			
			da.UpdateCommand.Parameters.Add("?cDescrip",MySql.Data.MySqlClient.MySqlDbType.VarChar,80,"pdescripcion");
			da.UpdateCommand.Parameters.Add("?cUnidad",MySql.Data.MySqlClient.MySqlDbType.VarChar,5,"punidad");
			MySqlParameter parametro=da.UpdateCommand.Parameters.Add("?cCodigo",MySqlDbType.VarChar,5,"productoid"); 
			parametro.SourceVersion=DataRowVersion.Original;
			//
			// Sigue : el DeleteCommand para grabar los 
			// eliminar filas
			//
			da.DeleteCommand=new MySqlCommand(cadenaDelete,conn);
			da.DeleteCommand.Parameters.Add("?cCodigo",MySql.Data.MySqlClient.MySqlDbType.VarChar,5,"productoId");
			//
			//
			lPrimeraCarga=true;		
		}
				
		void Button1Click(object sender, System.EventArgs e)
		{	DialogResult opcion=DialogResult.Yes;
			if(lPrimeraCarga==false)
				opcion=MessageBox.Show("Está usted seguro que desea cargar nuevamente los datos ?","Confirme", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
			if(opcion==DialogResult.Yes)
			  { lPrimeraCarga=false;
				ds.Clear(); // Limpia el dataSet, 
						// si es que ya contenìa datos
				da.Fill(ds,"TabProductos");
				dataGridView1.DataSource = ds;
				dataGridView1.DataMember="TabProductos";
				dataGridView1.Columns[0].ToolTipText="Este es el código";
				dataGridView1.Columns[0].HeaderText="Código";
				dataGridView1.Columns[0].Width=70;
				dataGridView1.Columns[1].HeaderText="Descripción";
				dataGridView1.Columns[1].Width=300;
				dataGridView1.Columns[2].HeaderText="Unidades";
				dataGridView1.Columns[2].HeaderText="Precio";
				
			  }		
		}
		
		void BtnGuardarClick(object sender, System.EventArgs e)
		{
			//new ErrorProvider().SetError(dataGridView1,"Error");
			if(MessageBox.Show("Está usted seguro que desea GRABAR todos los cambios realizados ?","Confirme", MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult.Yes)
			  {				
				try
				 {
				  da.Update(ds,"TabProductos");
				  MessageBox.Show("Se grabaron las modificaciones de los datos!");
				 }	
				catch(MySqlException ex)
				{
				  MessageBox.Show("Se produjo el siguiente error :"+ex.Message);
				}
			  }		
			
		}
		
		void BtnEliminarClick(object sender, System.EventArgs e)
		{
			dataGridView1.Rows.Remove(dataGridView1.CurrentRow);
			
		}
	}
}

    Source: geocities.com/es/hwfiestasb

               ( geocities.com/es)