0

Tengo un problema y no se como solucionar Hago una aplicación utilizando C# y sql server, todo bien en la conexión, consultas e ingresos de datos, pero cuando ingreso datos en una tabla me despliega el mensaje:

"Referencia a objeto no establecida como instancia de un objeto"

Mi código es algo así (otras funciones de consulta están bien, pero no se q pasa con esta:)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;

namespace sistemita
{
    public partial class registrar : Form
    {
        private object cnn;

        public SqlConnection Conectar { get; private set; }

        public registrar()
        {
            InitializeComponent();
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            TabControlPrincipal.SelectTab(0);
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            TabControlPrincipal.SelectTab(1);
        }

        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            TabControlPrincipal.SelectTab(2);
        }

        private void radioButton4_CheckedChanged_1(object sender, EventArgs e)
        {
            txtcarnet.Enabled = radioButton3.Checked;
            txtsocio.Enabled = radioButton4.Checked;


        }

        //para llenar el combobox de alergia
        public void llenarAlergia()

        {
            SqlConnection cnn = Conexion();
            cnn.Open();
            try
            {
                SqlCommand comando = new SqlCommand("select * from bool", cnn);
                SqlDataAdapter da = new SqlDataAdapter(comando);
                DataTable dt = new DataTable("suplidor");
                da.Fill(dt);
                cbalergi.DataSource = dt;
                cbalergi.DisplayMember = "bool";
                cbalergi.ValueMember = "bool_id";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            cnn.Close();
        }

        private SqlConnection Conexion()
        {
            throw new NotImplementedException();
        }

        //para llenar el combobox de enfermedad
        public void llenarEnfermedad()
        {
            SqlConnection cnn = Conectar;
            cnn.Open();
            try
            {
                SqlCommand comando = new SqlCommand("select * from bool", cnn);
                SqlDataAdapter da = new SqlDataAdapter(comando);
                DataTable dt = new DataTable("suplidor");
                da.Fill(dt);
                cbenfemedad.DataSource = dt;
                cbenfemedad.DisplayMember = "bool";
                cbenfemedad.ValueMember = "bool_id";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            cnn.Close();
        }



        private void cbalergi_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbalergi.SelectedIndex == 1)
            {
                txtenf.Enabled = true;
            }
            else
            {
                txtenf.Enabled = false;
            }
        }
        private void cbenfemedad_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbenfemedad.SelectedIndex == 2)
            {
                txtalergia.Enabled = true;
            }
            else
            {
                txtalergia.Enabled = false;
            }
        }

        private void enviar()
        {
            if (string.IsNullOrEmpty(txtcampista.Text) ||
                string.IsNullOrEmpty(txtgrupo.Text) ||
                string.IsNullOrEmpty(txtnombre.Text) ||
                string.IsNullOrEmpty(txtfrn.Text) ||
                string.IsNullOrEmpty(txtedad.Text) ||
                string.IsNullOrEmpty(txting.Text) ||
                string.IsNullOrEmpty(txtsali.Text) ||
                string.IsNullOrEmpty(txtnombre.Text) ||
                string.IsNullOrEmpty(txtceleme.Text)

)
            {
                MessageBox.Show("Debe llenar todos los campos");
            }
            else
            {
                SqlConnection cnn = Conectar;
                try
                {
                    cnn.Open();
                    SqlCommand comando = new SqlCommand("INSERT INTO cp VALUES (@codigo_camp, @grupo, @nombre_n," +
                        "@fe_naci, @edad, @socio, @no_carnet, @recomendacion, @fecha_ing, @fecha_sali," +
                        "@sem1, @sem2, @sem3, @sem4, @sem5, @sem6, @sem7,@alergia, @dalergia, @enfermedad," +
                        "@denfermedad, @dpastilla, @observaciones, @nombre_em, @cel_emer)", cnn);

                    comando.Parameters.Add("@codigo_camp", System.Data.SqlDbType.Int);
                    comando.Parameters.Add("@grupo", System.Data.SqlDbType.Int);
                    comando.Parameters.Add("@nombre_n", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@fe_naci", System.Data.SqlDbType.Date);
                    comando.Parameters.Add("@edad", System.Data.SqlDbType.Int);
                    comando.Parameters.Add("@socio", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@no_carnet", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@recomendacion", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@fecha_ing", System.Data.SqlDbType.Date);
                    comando.Parameters.Add("@fecha_sali", System.Data.SqlDbType.Date);
                    comando.Parameters.Add("@sem1", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@sem2", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@sem3", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@sem4", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@sem5", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@sem6", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@sem7", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@alergia", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@dalergia", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@enfermedad", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@denfermedad", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@dpastilla", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@observaciones", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@nombre_em", System.Data.SqlDbType.VarChar);
                    comando.Parameters.Add("@cel_emer", System.Data.SqlDbType.Int);

                    comando.Parameters["@codigo_camp"].Value = txtcampista.Text;
                    comando.Parameters["@grupo"].Value = txtgrupo.Text;
                    comando.Parameters["@nombre_n"].Value = txtnombre.Text;
                    comando.Parameters["@fe_naci"].Value = txtfrn.Value.Date;
                    comando.Parameters["@edad"].Value = txtedad.Text;
                    comando.Parameters["@no_carnet"].Value = txtcarnet.Text;
                    comando.Parameters["@recomendacion"].Value = cbs1.Text;
                    comando.Parameters["@fecha_ing"].Value = txting.Value.Date;
                    comando.Parameters["@fecha_sali"].Value = txtsali.Value.Date;
                    comando.Parameters["@sem1"].Value = cbs1.SelectedValue;
                    comando.Parameters["@sem2"].Value = cbs2.SelectedValue;
                    comando.Parameters["@sem3"].Value = cbs3.SelectedValue;
                    comando.Parameters["@sem4"].Value = cbs4.SelectedValue;
                    comando.Parameters["@sem5"].Value = cbs5.SelectedValue;
                    comando.Parameters["@sem6"].Value = cbs6.SelectedValue;
                    comando.Parameters["@sem7"].Value = cbs7.SelectedValue;
                    comando.Parameters["@alergia"].Value = cbalergi.SelectedValue;
                    comando.Parameters["@Dalergia"].Value = txtalergia.Text;
                    comando.Parameters["@enfermedad"].Value = cbenfemedad.SelectedValue;
                    comando.Parameters["@Denfermedad"].Value = txtenf.Text;
                    comando.Parameters["@dpastilla"].Value = txtpastilla.Text;
                    comando.Parameters["@nombre_em"].Value = txtalergia.Text;
                    comando.Parameters["@cel_emer"].Value = txtalergia.Text;

                    comando.ExecuteNonQuery();

                    MessageBox.Show("Regsitro guardado con exito");
                    txtcampista.Text = "";
                    txtgrupo.Text = "";
                    txtnombre.Text = "";
                    txtedad.Text = "";
                    txtcarnet.Text = "";
                    txtsocio.Text = "";
                    txtalergia.Text = "";
                    txtemerge.Text = "";
                    txtpastilla.Text = "";
                    txtobservaciones.Text = "";
                    txtemerge.Text = "";
                    txtceleme.Text = "";

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

        private void gdato_Click_1(object sender, EventArgs e)
        {
            enviar();
        }
    }



    }
ElGerar
  • 1,926
  • 2
  • 13
  • 20
  • Buenos dias Oliver, es un error clásico, deberías depurar y comprobar que todos los `comboBox` que intentas rellenar están inicializados correctamente, ya que tiene toda la pinta de que no es así. Un saludo – ElGerar Apr 04 '19 at 05:39
  • algun dato adicional que aporte donde se genera el problema? por ejemplo de donde sale la variable `Conectar` – Leandro Tuttini Apr 04 '19 at 16:22
  • Hola Oliver, bienvenido a StackOverflow en español. Te recomiendo que hagas un debugg en tu código de tal manera que puedas perseguir el error. en el siguiente enlace explica como realizar esta acción https://docs.microsoft.com/en-us/visualstudio/debugger/debugger-feature-tour?view=vs-2019 – arce.est Apr 04 '19 at 20:25

0 Answers0