ABM No Funciona
Publicado por Juan Manuel Castañeda (71 intervenciones) el 11/02/2010 19:57:24
Hola a todos.
Tengo un formulario(Windows Forms) con un DataGridView y botones para ABM.
En el evento Load del formulario cargo la grilla con una tabla de una bbdd pero cuando ejecuto los ABM no los ejecuta.
public partial class form1:Form
{
Datos.Paises p;
public form1(){
p=new Datos.Paises();//Datos.Paises es una clase para manejar una tabla de Paises
dataGridView1.DataSource=p.ds;
dataGridView.DataMember="Paises";
}
private void Button1_Click(object sender,EventArgs e){
p.guardar();
}
private void button2_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Desea Eliminar Esta Fiila", "Elimonacion de Filas", MessageBoxButtons.YesNo) == DialogResult.Yes) {
dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
p.guardar();
}
}
}
mamespces Localidades.Datos{
class Paises:Datos.Provincias{
public Paises():base() {
this.traer();
}
}
public override void traer() {
si++;
cadsql[si] = "Select * FROM Paises ORDER BY nombre";
base.traer();
ds.Tables[0].Columns[1].AllowDBNull = false;
ds.Tables[0].Columns[2].AllowDBNull = false;
ds.Tables[0].Columns[1].Unique = true;
ds.Tables[0].Columns[2].Unique = true;
//MessageBox.Show(nombretabla().Substring(0, nombretabla().Length - 2));
si++;
dc.ElementAt(si)[0] = ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 2) + ""];
ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 2) + ""].AutoIncrement = true;
ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 2)].AutoIncrementSeed = -1;
ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 2)].AutoIncrementStep = -1;
ds.Tables["" + nombretabla() + ""].PrimaryKey = dc.ElementAt(si);
//si=0;
/*ds.Tables["" + nombretabla() + ""].PrimaryKey =(DataColumn[])dc.GetEnumerator().Current;
MessageBox.Show(nombretabla().Substring(0, nombretabla().Length - 2));
dc[0,0] = ds.Tables["" + cadsql[0].Split(' ')[3] + ""].Columns["Id" + cadsql[0].Split(' ')[3].Substring(0, cadsql[0].Split(' ')[3].Length-1) + ""];*/
si--;
if (si < 0) Application.Exit();
dc.ElementAt(si)[0] = ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 1) + ""];
if (dc.ElementAt(si)[0] == null) Application.Exit();
ds.Tables["" + nombretabla() + ""].PrimaryKey = dc.ElementAt(si);
//MessageBox.Show(ds.Tables["Paises"].PrimaryKey.Length.ToString());
//dr[0]=new DataRelation("Pais Posee Provincias",ds.Tables["Paises"].PrimaryKey[0], ds.Tables["" + nombretabla() + ""].Columns[1]);
// MessageBox.Show(ds.Relations.Count.ToString());
if (ds.Relations.Count==0)
ds.Relations.Add(ds.Tables["Paises"].PrimaryKey[0], ds.Tables["" + nombretabla() + ""].Columns[1]);
ds.Relations[0].ParentKeyConstraint.Columns[0].Unique = true;
ds.EnforceConstraints=true;
}
public override void guardar() {
base.guardar();
}
}
}
Datos.Provincias
using AccesoDatos;//DLL hecho por mi por el acceso de a la base(MS SQL Server 2008 Express)
namespace Localidades.Datos{
class Provincias:AccesoAatos{
}
}
Tengo un formulario(Windows Forms) con un DataGridView y botones para ABM.
En el evento Load del formulario cargo la grilla con una tabla de una bbdd pero cuando ejecuto los ABM no los ejecuta.
public partial class form1:Form
{
Datos.Paises p;
public form1(){
p=new Datos.Paises();//Datos.Paises es una clase para manejar una tabla de Paises
dataGridView1.DataSource=p.ds;
dataGridView.DataMember="Paises";
}
private void Button1_Click(object sender,EventArgs e){
p.guardar();
}
private void button2_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Desea Eliminar Esta Fiila", "Elimonacion de Filas", MessageBoxButtons.YesNo) == DialogResult.Yes) {
dataGridView1.Rows.RemoveAt(dataGridView1.CurrentRow.Index);
p.guardar();
}
}
}
mamespces Localidades.Datos{
class Paises:Datos.Provincias{
public Paises():base() {
this.traer();
}
}
public override void traer() {
si++;
cadsql[si] = "Select * FROM Paises ORDER BY nombre";
base.traer();
ds.Tables[0].Columns[1].AllowDBNull = false;
ds.Tables[0].Columns[2].AllowDBNull = false;
ds.Tables[0].Columns[1].Unique = true;
ds.Tables[0].Columns[2].Unique = true;
//MessageBox.Show(nombretabla().Substring(0, nombretabla().Length - 2));
si++;
dc.ElementAt(si)[0] = ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 2) + ""];
ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 2) + ""].AutoIncrement = true;
ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 2)].AutoIncrementSeed = -1;
ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 2)].AutoIncrementStep = -1;
ds.Tables["" + nombretabla() + ""].PrimaryKey = dc.ElementAt(si);
//si=0;
/*ds.Tables["" + nombretabla() + ""].PrimaryKey =(DataColumn[])dc.GetEnumerator().Current;
MessageBox.Show(nombretabla().Substring(0, nombretabla().Length - 2));
dc[0,0] = ds.Tables["" + cadsql[0].Split(' ')[3] + ""].Columns["Id" + cadsql[0].Split(' ')[3].Substring(0, cadsql[0].Split(' ')[3].Length-1) + ""];*/
si--;
if (si < 0) Application.Exit();
dc.ElementAt(si)[0] = ds.Tables["" + nombretabla() + ""].Columns["Id" + nombretabla().Substring(0, nombretabla().Length - 1) + ""];
if (dc.ElementAt(si)[0] == null) Application.Exit();
ds.Tables["" + nombretabla() + ""].PrimaryKey = dc.ElementAt(si);
//MessageBox.Show(ds.Tables["Paises"].PrimaryKey.Length.ToString());
//dr[0]=new DataRelation("Pais Posee Provincias",ds.Tables["Paises"].PrimaryKey[0], ds.Tables["" + nombretabla() + ""].Columns[1]);
// MessageBox.Show(ds.Relations.Count.ToString());
if (ds.Relations.Count==0)
ds.Relations.Add(ds.Tables["Paises"].PrimaryKey[0], ds.Tables["" + nombretabla() + ""].Columns[1]);
ds.Relations[0].ParentKeyConstraint.Columns[0].Unique = true;
ds.EnforceConstraints=true;
}
public override void guardar() {
base.guardar();
}
}
}
Datos.Provincias
using AccesoDatos;//DLL hecho por mi por el acceso de a la base(MS SQL Server 2008 Express)
namespace Localidades.Datos{
class Provincias:AccesoAatos{
}
}
Valora esta pregunta


0