Haga su primer programa con C# Express Edition y SQL Server 2008 Express

Hacer una aplicación sencilla que lea y escriba datos en una tabla de SQL server 2008 Express Edition usando Visual C# Express Edition

Esta ayuda sirve para una persona con conocimientos básicos de C# y buenos conocimientos de programación sin importar que lenguaje haya usado. Espero comentarios por si algo no funciona.

Hacer un Diario Electrónico con C#

Pantalla Principal:






Debe tener instalado Visual C# Express Edition y SQL Server 2008 Express Edition

Crear un nuevo proyecto en C# y realizar los siguientes pasos:

En la pantalla que aparece a continuación adicionar todos los controles necesarios para que luzca igual que la muestra del inicio.

A continuación la estructura de la tabla a crear en SQL Server 2008:



Usted va a poder visualizar la información en un control datagridview y opcionalmente borrar. Explicación del primer tab:


Iniciar a codificar:

Pulse doble click sobre el botón con el título "Add button"
Adicionar el siguiente código: Cambiar Server por el nombre de su equipo y la instancia de sql server instalada en su computador al igual del nombre de la base de datos (si aplica)


private void button2_Click(object sender, EventArgs e)

{
//We're going to use oledb to access data
StringBuilder sb = new StringBuilder();
System.Data.OleDb.OleDbConnection con;
con = new System.Data.OleDb.OleDbConnection(@"Provider=
SQLNCLI10;Server=JOHN_LAPTOP\SQLEXPRESS;Database=MyDiary; Trusted_Connection=yes;");
try
{
con.Open();
OleDbCommand dbcom = con.CreateCommand();
OleDbDataAdapter daMyData = new OleDbDataAdapter(dbcom);
if (con.State != ConnectionState.Open)
{
con.Close();
MessageBox.Show("Can't open data connection, please try again later", "Check parameters");
return;
}

sb.Append("insert into MyEvent(Eventdate,Eventtime,EventObjective) values('");
sb.Append(dateTimePicker1.Value.ToShortDateString());
sb.Append("','");
sb.Append(hour.Value.ToString());
sb.Append(":");
sb.Append(min.Value.ToString());
sb.Append("','");
sb.Append(textBox1.Text);
sb.Append("')");
dbcom.CommandText = sb.ToString();
dbcom.ExecuteNonQuery();
Fillgrid();
lbllastaction.Text = "Added New Event";
}
catch (Exception ex)
{
lbllastaction.Text = ex.Message;
MessageBox.Show(ex.Message);
}

}

Este código lee la información puesta en los controles y adiciona un nuevo registro en la tabla dbo.MyEvent

Por favor verifique que los nombres de cada objeto sean iguales a los nombres que usa en el código, de lo contrario no va a compilar. O cambielos según su necesidad.

Código para el botón titulado "See Events List"

private void button3_Click(object sender, EventArgs e)

{
tabControl1.SelectTab("tabpage2");

StringBuilder sb = new StringBuilder();
System.Data.OleDb.OleDbConnection con;
con = new System.Data.OleDb.OleDbConnection(@"Provider=
SQLNCLI10;Server=JOHN_LAPTOP\SQLEXPRESS;Database=MyDiary; Trusted_Connection=yes;");
try
{
con.Open();
OleDbCommand dbcom = con.CreateCommand();
OleDbDataAdapter daMyData = new OleDbDataAdapter(dbcom);
if (con.State != ConnectionState.Open)
{
con.Close();
MessageBox.Show("Can't open data connection, please try again later", "Check parameters");
return;
}
sb.Append("select * from MyEvent order by idnumber desc");
dbcom.CommandText = sb.ToString();
dt.Clear();
daMyData.Fill(dt);
dgv1.DataSource = dt;

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

}
A partir de este código vamos a generar una nueva función llamada Fillgrid() para que llene el grid cuando pulsamos ese botón o para cuando el usuario da click en el tab2.

Seleccione el código desde "stringbuilder sb... hasta catch { }", pulse click derecho y escoja la opción "Refactorizar", luego "Extraer método", escriba como nombre "Fillgrid", esto va a crear un nuevo método llamado: "Private void Fillgrid()"



Para que el datagridview funcione necesitamos crear un datatable. Para tener este lo vamos a crear en el inicio para que tenga funcionalidad en todo el proyecto. Ubique al inicio del código lo siguiente:


namespace MyDiary

{
public partial class Form1 : Form
{
DataTable dt = new DataTable();
//<---add here this line to let program see dt globally
public Form1()
{
InitializeComponent();
hour.Value = System.DateTime.Now.Hour;
//<--- puede adicionar esto para que se llene la hora y minutos al ejecutar la forma
min.Value = System.DateTime.Now.Minute;
} ... resto del código.....



Busque ahora en el tabpage2 el método Enter y adicione este código:


private void tabPage2_Enter(object sender, EventArgs e)
{
Fillgrid();
}

Para hacerlo dele click al tabpage 2 abajo de donde haya añadido el datagridview y
busque en la ventana de propiedades el rayito que simboliza los métodos,
lo ubica y le dá doble click.

Ahora borre la línea "Fillgrid();" del button3 porque ya no se va a necesitar.
Que quede solo lo tabcontrol1.selecttab("tabpage2");

private void button3_Click(object sender, EventArgs e)

{

tabControl1.SelectTab("tabpage2");

Fillgrid(); //<--delete this line, now when entering to tabpage2 it will populate the grid automatically
}

Code for delete button:


private void button1_Click_1(object sender, EventArgs e)
{
string sid = dt.Rows[dgv1.CurrentRow.Index]
         ["idnumber"].ToString();
if (sid.Length > 0)
{
StringBuilder sb = new StringBuilder();
System.Data.OleDb.OleDbConnection con;
con = new System.Data.OleDb.OleDbConnection(@"Provider=
         SQLNCLI10;Server=JOHN_LAPTOP\SQLEXPRESS;
         Database=MyDiary; Trusted_Connection=yes;");
try
{
con.Open();
OleDbCommand dbcom = con.CreateCommand();
OleDbDataAdapter daMyData = new OleDbDataAdapter(dbcom);
if (con.State != ConnectionState.Open)
{
con.Close();
MessageBox.Show("No se puede abrir la conexion,
                intente luego", "Verifique parametros");
return;
}
sb.Append("delete from MyEvent where idnumber='");
sb.Append(sid);
sb.Append("'");
dbcom.CommandText = sb.ToString();
dbcom.ExecuteNonQuery();
Fillgrid();
lbllastaction.Text = "Deleted Event with idnumber=" + sid;
}
catch (Exception ex)
{
lbllastaction.Text = ex.Message;
MessageBox.Show(ex.Message);
}

}
}

Este código borra el registro que está seleccionado y hace un refresh del grid.


Siendo esta mi primera entrega para desarrollo de aplicaciones usando C# Express Edition, espero comentarios para poder mejorar la próxima entrega.

John Harold.

Comentarios

Anónimo ha dicho que…
hola amigo al parecer el tutorial es bueno pero puedo notar que en la parte del codigo falta claridad debido al margen derecho q corta parte de dicho codigo
John H. ha dicho que…
Si tienes razón, estoy poniendo un link para que se pueda bajar el ejemplo completo en un zip. y voy a revisar la entrada para que no lo recorte. Gracias.

Entradas populares de este blog

2da Reeleccion del presidente Alvaro Uribe?

Windows 8 cerrar ventanas

Lo sentimos la aplicación Contactos se detuvo.