Está en la página 1de 8

Visual Studio 2010 y Base de Datos

En este captulo, se ilustra la programacin de base de datos utilizando Visual Studio 2010 Existen dos formas de trabajo con base de dato, la forma conectada y la forma desconectada.

Forma Conectada
Se consideran los siguientes puntos: Manejo de la conexin Tratamiento de errores Trabajo con comandos de seleccin Comandos de actualizacin

MANEJO DE LA CONEXIN El objeto Connection se utiliza para conectarse al origen de datos. 1. Definir el NameSpace para acceso a datos: 2. Declarar una variable del tipo OleDbConnection: 3. Definir la cadena de conexin, utilizando la propiedad ConnectionString:
cn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" + @"Data source=c:\Ejercicio1\sucursal.accdb"; 4. Abrir la conexin utilizando el mtodo Open del objeto OleDbConnection: cn.Open(); 5. Cerrar la conexin utilizando el mtodo Close del objeto OleDbConnection: cn.Close(); OleDbConnection cn=new OleDbConnection(); using System.Data; using System.Data.OleDb;

CONTROLANDO ERRORES

Cuando existe algn error al efectuarse la conexin a la base de datos o al realizar alguna consulta, se debe tratar los errores utilizando:
Try .. catch.,. finally

try { cn.Open();

// Otras instrucciones } catch (Exception Ex) { MessageBox.Show("El siguiente error :" + Ex.Message); } finally { if (cn.State == ConnectionState.Open) MessageBox.Show("Conexin efectuada"); else MessageBox.Show("Conexin no se efectuo"); }

TRABAJO CON COMANDOS DE SELECCIN Comandos que devuelven un conjunto de datos (ExecuteReader):
OleDbCommand cmd = new OleDbCommand(); OleDbDataReader Reader; cmd.CommandText = "Select * from sucursal"; cmd.Connection = cn; Reader = cmd.ExecuteReader(); listBoxDatos.Items.Clear(); while (Reader.Read()) { string texto = Reader[0].ToString() + " - " + Reader["nombre"].ToString(); listBoxDatos.Items.Add(texto); }

Comandos que devuelven un valor (ExecuteScalar):


OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = "Select count(*) from sucursal"; cmd.Connection = cn; try { textBoxConteo.Text= Convert.ToString(cmd.ExecuteScalar()); } catch (Exception ex) { MessageBox.Show(ex.Message); }

TRABAJO CON COMANDOS DE ACTUALIZACIN DE DATOS Comando para insertar un registro con el uso de parmetros:

OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = "Insert into sucursal values(@Id_Sucursal,@Nombre_Sucursal)"; cmd.Connection = cn; cmd.Parameters.Add(new OleDbParameter("@Id_Sucursal", OleDbType.Integer)); cmd.Parameters["@Id_Sucursal"].Value = textBox_Id_Sucursal.Text; cmd.Parameters.Add(new OleDbParameter("@Nombre_Sucursal", OleDbType.VarChar, 50)); cmd.Parameters["@Nombre_Sucursal"].Value = textBox_Nombre.Text; try { cmd.ExecuteNonQuery(); MessageBox.Show("Registro insertado"); } catch { MessageBox.Show("Error al insertar"); }

Comando para modificar un registro con el uso de parmetros:


OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = "Update Sucursal set Nombre=@Nombre Where Id_Sucursal=@Id_Sucursal"; cmd.Connection = cn; cmd.Parameters.Add(new OleDbParameter("@Nombre",OleDbType.VarChar,50)); cmd.Parameters["@Nombre"].Value=textBox_Nombre.Text; cmd.Parameters.Add(new OleDbParameter("@Id_Sucursal",OleDbType.Integer)); cmd.Parameters["@Id_Sucursal"].Value = textBox_Id_Sucursal.Text; try { cmd.ExecuteNonQuery(); MessageBox.Show("Registro modificado"); } catch { MessageBox.Show("Error al Modificar"); }

Comando para eliminar un registro con el uso de parmetros:


OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = "Delete from sucursal where Id_Sucursal=@Id_Sucursal"; cmd.Parameters.Add(new OleDbParameter("@Id_Sucursal",

OleDbType.Integer)); cmd.Parameters["@Id_Sucursal"].Value = textBox_Id_Sucursal.Text; cmd.Connection = cn; try { cmd.ExecuteNonQuery(); MessageBox.Show("Registro eliminado"); } catch { MessageBox.Show("Error al eliminar"); }

Apuntes para trabajar con dos formularios

En el formulario 1:

public static OleDbConnection cn=new OleDbConnection(); public static Int32 codigo; private void button1_Click(object sender, EventArgs e) { Form2 frm2=new Form2(); frm2.ShowDialog(); textBox1.Text = codigo.ToString (); }

En el formulario 2:

private void textBox1_TextChanged(object sender, EventArgs e) { if (textBox1.Text=="" ) { dataGridView1.DataSource = ""; return; } OleDbCommand cmd = new OleDbCommand(); cmd.CommandText = "Select * from sucursal where nombre like @nombre";

cmd.Parameters.Add(new OleDbParameter("@nombre", OleDbType.VarChar,50)); cmd.Parameters["@nombre"].Value = textBox1.Text +"%"; cmd.Connection = FrmTema.cn; OleDbDataReader Reader; Reader = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(Reader); dataGridView1.DataSource = dt; }

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { int filaSeleccionada = dataGridView1.CurrentRow.Index; FrmTema.codigo = Convert.ToInt32(dataGridView1. Rows[filaSeleccionada].Cells[0].Value); this.Close(); }

Apuntes para trabajar con dataTimePicker, ComboBox y CheckBox

Se tienen los siguientes controles:

Para el intervalo o diferencia de dos fechas, se tiene:


private void Diferencia_Click_1(object sender, EventArgs e) { DateTime d1 = dateTimePicker1.Value; DateTime d2 = dateTimePicker2.Value; TimeSpan Intervalo = d2 - d1; MessageBox.Show("Dias" + Intervalo.Days); }

Para cargar un combobox:

void Cargar_ComboBox() { OleDbCommand cmd = new OleDbCommand(); OleDbDataReader Reader; cmd.CommandText = "Select * from sucursal"; cmd.Connection = cn; Reader = cmd.ExecuteReader(); DataTable dt = new DataTable(); dt.Load(Reader); comboBox1.DataSource = dt; comboBox1.DisplayMember = "nombre"; comboBox1.ValueMember = "Id_Sucursal"; }

Para mostrar el cdigo seleccionado, de un combobox:


private void MostrarCodigo_Click(object sender, EventArgs e) { MessageBox.Show("Cdigo Sucursal : " + comboBox1.SelectedValue.ToString()); }

Para posicionar en un cdigo especfico en un combobox:

private void Posicionar_Click(object sender, EventArgs e) { comboBox1.SelectedValue = textBox2.Text; }

Para mostrar el valor de un checkbox: private void checkBox1_CheckedChanged(object sender, EventArgs e) { MessageBox.Show(checkBox1.Checked.ToString()); }

También podría gustarte