Ayuda ABM con .DataBindings

21/02/2010 - 18:14 por Agustin Cot | Informe spam
Hola, estoy atascado en formulario de Altas,Modificaciones, Bajas de
clientes no se como recorrer el .DataBindings
avanzar,retroceder,eliminar,añadir...
vengo de FOX y deseo hacerlo por codigo no por assistente

teneis algun ejemplo

Gracias

Agustin Cot


Ejemplo pego codigo clientes.cs

******************************************************************************************
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;

using System.Text;
using System.Windows.Forms;

namespace PGEmpresarial
{
public partial class MgrClientes : Form
{
public DataSet ds = new DataSet();
public SqlDataAdapter da;

public MgrClientes()
{
InitializeComponent();

}

private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{

if (e.KeyChar == '')
{
e.Handled = true;
SendKeys.Send("{Tab}");
SendKeys.Send("{END}");
}
}
private void textBox_Enter(object sender, System.EventArgs e)
{
TextBox senderTB = (TextBox)sender;
senderTB.BackColor = Color.LightCyan;

}

private void textBox_Leave(object sender, System.EventArgs e)
{
TextBox senderTB = (TextBox)sender;
senderTB.BackColor = Color.White;
}

private void MgrClientes_Load(object sender, EventArgs e)
{
// Doble Buffer evita parpadeos :)
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
ControlStyles.UserPaint | ControlStyles.DoubleBuffer |
ControlStyles.OptimizedDoubleBuffer, true);

foreach (Control c in this.tabPage1.Controls)
{
if (c is TextBox)
{
//c.Text = "";
c.Enabled = false;
}
}


}

private void btnSalir_Click(object sender, EventArgs e)
{
if (da != null)
{
da.Dispose();
ds.Dispose();
}
this.Close();
this.Dispose();
}

private void btnBuscarCod_Click(object sender, EventArgs e)
{


}

private void bindingNavigatorMoveNextItem_Click(object sender,
EventArgs e)
{


this.txtCodigo.DataBindings.Clear();
this.txtNombre.DataBindings.Clear();


this.txtCodigo.DataBindings.Add("Text", ds.Tables["Clientes"],
"codigo");
this.txtNombre.DataBindings.Add("Text", ds.Tables["Clientes"],
"nombre");

}

private void btnEditar_Click(object sender, EventArgs e)
{

}

private void button2_Click(object sender, EventArgs e)
{

String sCnn = PGEmpresarial.Program.cConectDB;
string sSel = "SELECT * FROM " + PGEmpresarial.Program.cEjerName
+ "Cliente ORDER BY codigo";

SqlConnection cnn = new SqlConnection(sCnn);

try
{

// Crear un nuevo objeto del tipo DataAdapter

da = new SqlDataAdapter(sSel, sCnn);

ds = new DataSet();

da.Fill(ds, "Clientes");

this.txtCodigo.DataBindings.Clear();
this.txtNombre.DataBindings.Clear();
this.txtCodigo.DataBindings.Add("Text",
ds.Tables["Clientes"], "codigo");
this.txtNombre.DataBindings.Add("Text",
ds.Tables["Clientes"], "nombre");
//this.datealta.Value=
ds.Tables["Clientes"].Columns["dataAlta"];

this.Text = "Mantenimiento Clientes: "+ this.txtNombre.Text;

// this.txtRazonSocial.DataBindings.Clear();
//this.txtRazonSocial.DataBindings.Add("Text",
ds.Tables["DatosEmpresa"], "RazonSocial");
// this.txtNombre.DataBindings.Clear();
// this.txtNombre.DataBindings.Add("Text",
ds.Tables["DatosEmpresa"], "Nombre");
// this.txtCIF.DataBindings.Clear();
// this.txtCIF.DataBindings.Add("Text",
ds.Tables["DatosEmpresa"], "Cif");
// this.txtDireccion.DataBindings.Clear();
// this.txtDireccion.DataBindings.Add("Text",
ds.Tables["DatosEmpresa"], "Direccion");

// this.txtRazonSocial.Focus();
// SendKeys.Send("{END}");

// Asigno DataBinding
this.dbnavclientes.BindingSource = new BindingSource(ds,
"Clientes");
// this.dbnavclientes.BindingSource.MoveNext();
cnn.Close();

if (da != null)
{
// da.Dispose();
// ds.Dispose();
}

foreach (Control c in this.tabPage1.Controls)
{
if (c is TextBox)
{
//c.Text = "";
c.Enabled = true;
}
}

// Nueva Empresa ?
//if (this.txtRazonSocial.Text == "")
//{
// btnEDIT_Click(sender, e);
// }


}
catch (Exception ex)
{
//MessageBox.Show(ex.Message,"DataBase Engine Error",
MessageBoxButtons.OK, MessageBoxIcon.Information);
MessageBox.Show(ex.GetType().Name + ": " + ex.Message,
"DataBase Engine Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}
}
}

Preguntas similare

Leer las respuestas

#1 Leandro Tuttini
21/02/2010 - 19:55 | Informe spam
hola

te aconsejaria que le des una mirada a este link

BindingSource and BindingNavigator in C# 2.0
http://www.codeproject.com/KB/grid/...NavCS.aspx

esta muy completo y seguro alli podras ver como usar el
BindingNavigator para poder moverte por los registros

saludos
Respuesta Responder a este mensaje
#2 Agustin Cot
21/02/2010 - 20:44 | Informe spam
Usa asistente de datos y no quiero assistente

Gracias

"Leandro Tuttini" escribió en el mensaje
news:
hola

te aconsejaria que le des una mirada a este link

BindingSource and BindingNavigator in C# 2.0
http://www.codeproject.com/KB/grid/...NavCS.aspx

esta muy completo y seguro alli podras ver como usar el
BindingNavigator para poder moverte por los registros

saludos

Respuesta Responder a este mensaje
#3 Leandro Tuttini
21/02/2010 - 21:26 | Informe spam
hola

si en realidad el link no era para que lo tomes identico a como estaba
alli, sino ams bien para que peudas sacar algunas ideas

primero algunos consejos

- cuando consultas una tabla no es obligatorio que uses un dataset, si
es que solo vas a trabjar con una tabla, es mas comodo ahcerlo con un
datatable

podrias hacer algo como esto

private void button2_Click(object sender, EventArgs e)
{
try
{
string sCnn = PGEmpresarial.Program.cConectDB;

using(SqlConnection cnn = new SqlConnection(sCnn))
{
string sSel = "SELECT codigo, nombre FROM Cliente ORDER BY codigo";
SqlDataAdapter da = new SqlDataAdapter(sSel, sCnn);

DataTable dt = new DataTable();

da.Fill(dt);

this.txtCodigo.DataBindings.Clear();
this.txtNombre.DataBindings.Clear();
this.txtCodigo.DataBindings.Add("Text", dt, "codigo");
this.txtNombre.DataBindings.Add("Text", dt, "nombre");


// Asigno DataBinding
this.dbnavclientes.BindingSource = new BindingSource(dt);

this.Text = string.Format("Mantenimiento Clientes: {0}",
this.txtNombre.Text);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.GetType().Name + ": " + ex.Message,
"DataBase Engine Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}

}


ahora bien veras en el ejemplo del link que para moverse entre los
registros usa el BindingSource, creo que en tu ejmeplo justamente lo
que falta es definir este

private void btNext_Click(object sender, EventArgs e)
{
if (this.bindingSource1.Position + 1 < this.bindingSource1.Count)
{
this.bindingSource1.MoveNext();
this.fnDisplayPosition();
}
}


o sea el dataset o datable deberias primer asignarlo a un
BindingSource y luego este usarlo en los DataBindings de los textbox
asi al presiona siguiente puede usar el metodo MoveNext() del
BindingSource, como muestra el ejemplo del link

algo asi

private void button2_Click(object sender, EventArgs e)
{
try
{
string sCnn = PGEmpresarial.Program.cConectDB;

using(SqlConnection cnn = new SqlConnection(sCnn))
{
string sSel = "SELECT codigo, nombre FROM Cliente ORDER BY codigo";
SqlDataAdapter da = new SqlDataAdapter(sSel, sCnn);

DataTable dt = new DataTable();

da.Fill(dt);

BindingSource1.DataSource = dt;

this.txtCodigo.DataBindings.Clear();
this.txtNombre.DataBindings.Clear();
this.txtCodigo.DataBindings.Add("Text", BindingSource1, "codigo");
this.txtNombre.DataBindings.Add("Text", BindingSource1, "nombre");


// Asigno DataBinding
this.dbnavclientes.BindingSource = BindingSource1;

this.Text = string.Format("Mantenimiento Clientes: {0}",
this.txtNombre.Text);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.GetType().Name + ": " + ex.Message,
"DataBase Engine Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
}

}

veras que se agrego la linea
BindingSource1.DataSource = dt;

y este control luego es usado en el resto
bien ahora cuando hagas un MoveNext() se cambiara el contenido de
todos los controles asociados

bueno espero que mas claro el tema, como veras el link era para sacar
todas estas conclusiones
saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida