none
Llenar Datos Automáticamente a una tabla de SQL server, con lenguaje de programación C# RRS feed

  • Pregunta

  • estimados buenas tardes

    Estoy trabajando en primeros proyectos en C#, y tengo dos tablas uno agenda y la otra Boleta en sql server

    dbo.Agenda

    Codigo int (PK) (not Null) Y no es autonómico 
    Nombre nvarchar(255)
    Direccion nvarchar(255)
    TelfOf nvarchar(255)
    Int nvarchar(255)
    TelfDom nvarchar(255)
    email nvarchar(255)
    Web nvarchar(255)
    Fax nvarchar(255)
    Casilla nvarchar(255)
    Nivel  nvarchar(255)

    dbo.Boletas

    numbol int  (PK) Autonumerico 
    codsai int  Hereda de Agenda 
    total nvarchar(50)
    fechaemic smalldatetime
    estado nvarchar(50)

    mi consulta es: crear una boleta automáticamente en la tabla boleta que tenga en Estado =  ACTIVO a todos los usuario de la tabla Agenda para que realice la cancelacion. para esto seria una consulta o con el dataset, procedimiento?? estoy trancado en este paso gracias 

    estoy usando datasets 

    ///aqui esta mi codigo completo 

           

    namespace VCC
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                // TODO: esta línea de código carga datos en la tabla 'vVCDataSet.Agenda' Puede moverla o quitarla según sea necesario.
                this.agendaTableAdapter.Fill(this.vVCDataSet.Agenda);

            }

            private void button1_Click(object sender, EventArgs e)
            {
                int celda = 0;
                String searchValue = "";
                if (textBox1.Text != "")
                {
                    celda = 0;
                    searchValue = textBox1.Text;
                }
                else {
                    celda = 1;
                    searchValue = textBox2.Text;
                }

                int rowIndex = -1;
                foreach (DataGridViewRow row in dataGridView1.Rows)
                {
                    if (row.Cells[celda].Value.ToString().Contains(searchValue))
                    {
                        rowIndex = row.Index;
                        break;
                    }
                }
                dataGridView1.Rows[rowIndex].Selected = true;
                dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.SelectedRows[0].Index;
                CargarBoleta(Int32.Parse(dataGridView1.Rows[rowIndex].Cells[0].Value.ToString()));
            }

            private void dataGridView1_SelectionChanged(object sender, EventArgs e)
            {
                string co = "";
                int codigoo = 0;
                co = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[1].Value.ToString();
                if (!Int32.TryParse(co,out codigoo))
                {
                    co = "0";
                }
                CargarBoleta(Int32.Parse(co));
            }

            public void CargarBoleta(int cod) {
                VVCDataSetTableAdapters.BoletaTableAdapter boleta = new VVCDataSetTableAdapters.BoletaTableAdapter();
                dataGridView2.DataSource = boleta.ListarBoletaBy(cod);
            }

            public void GuardarBoleta(int NumBol,string codconcep,DateTime mespago,string montocon)
            {
                VVCDataSetTableAdapters.PagosTableAdapter Pagos = new VVCDataSetTableAdapters.PagosTableAdapter();
                Pagos.Insert(NumBol, codconcep, mespago, montocon);
                VVCDataSetTableAdapters.BoletaTableAdapter Boleta = new VVCDataSetTableAdapters.BoletaTableAdapter();
                Boleta.ModificarBoleta("CANCELADA", NumBol);
            }
            private void button2_Click(object sender, EventArgs e)
            {
                textBox1.Text = "";
                textBox2.Text = "";
            }

            private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {

            }

            private void button3_Click(object sender, EventArgs e)
            {
                if (dataGridView2.RowCount <= 0)
                {
                    MessageBox.Show("Debe Elegir una boleta");
                }
                else
                {
                    if (dataGridView2.Rows[dataGridView2.CurrentRow.Index].Cells[4].Value.ToString().Trim() == "ACTIVO")
                    {
                        if (MessageBox.Show("Esta Seguro que quiere relizar el pago de la boleta", " Pagar la boleta", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        {
                            if (textBox3.Text != "")
                            {
                                DateTime fecha = DateTime.Parse(dataGridView2.Rows[dataGridView2.CurrentRow.Index].Cells[3].Value.ToString());
                                string fec = fecha.Year.ToString() + "-" + fecha.Month.ToString() + "-01";
                                DateTime fecha2 = DateTime.Parse(fec);
                                GuardarBoleta(Int32.Parse(dataGridView2.Rows[dataGridView2.CurrentRow.Index].Cells[0].Value.ToString()), (comboBox1.SelectedIndex + 1).ToString(), fecha2, textBox3.Text);
                                MessageBox.Show("Datos Guardados");
                                button1_Click(null, null);
                            }
                            else
                            {
                                MessageBox.Show("Falta Introducir el monto a cancelar");
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Esta Boleta ya esta Cancelada");
                    }
                }
            }

            private void textBox1_KeyUp(object sender, KeyEventArgs e)
            {
                if(e.KeyCode == Keys.Enter)
                {
                    button1_Click(null,null);
                }
            }

            private void textBox2_KeyUp(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Enter)
                {
                    button1_Click(null, null);
                }
            }

            private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
            (e.KeyChar != '.'))
                {
                    e.Handled = true;
                }
            }

            private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                textBox3.Text = dataGridView2.Rows[e.RowIndex].Cells[2].Value.ToString();
            }
        }
    }

    muchas gracias atte Weimar

    martes, 11 de septiembre de 2018 21:51

Todas las respuestas

  • hola

    >>mi consulta es: crear una boleta automáticamente en la tabla boleta que tenga en Estado =  ACTIVO a todos los usuario de la tabla Agenda para que realice la cancelacion. para esto seria una consulta o con el dataset, procedimiento?

    el dataset se usa para consultar no para actualizar o insertar

    lo que recomendaria es que estudies un poco de ado.net para poder ejecutar las opciones de INSERT o UPDATE usando el SqlCommand

    [WinForms] Edición Empleados

    analiza el articulo como estructuro el codigo en capas usando ado.net ejecutando actualizacion

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 11 de septiembre de 2018 23:18
  • estimado Leandro

    creo que no me hice entender bien:

    en pocas palabras dadas las tablas deseo generar boletas después editar la boleta y sea cancelada 

    private void button4_Click(object sender, EventArgs e)
            {

    VVCDataSetTableAdapters.AgendaTableAdapter agenda = new VCCDataSetTableAdapters.AgendaTableAdapter ();

    datatabledt = agenda.getdata();for (int 1 = 0 ; i < dt.rows.count ; i++)
           {

                 //con esto recorrere el datas et de agenda y va generando la boleta en estado a ACTIVO

    // PERO NO ENCUENTRO LA MANERA DE HACERLO O CON FOR EACH 

    }

    muchas gracias 

    Atte.

    Weimar

    miércoles, 12 de septiembre de 2018 15:52