Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: SAGA-gl en 2 Julio 2014, 06:40 am



Título: error de variable scalar
Publicado por: SAGA-gl en 2 Julio 2014, 06:40 am
hola gente del foro....me encuentro practicando para el parcial de c# q tendre dentro de poco en la facutad y obtengo el error de variable scalar, al obtener el dato del combo(que es clave foránea) y querer darle el alta en la base de datos:
Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using System.Data.SqlClient;
  10.  
  11. namespace Base4
  12. {
  13.    public partial class Altas : Form
  14.    {
  15.        public Altas()
  16.        {
  17.            InitializeComponent();            
  18.        }
  19.  
  20.        private SqlConnection conexion;
  21.        private SqlDataAdapter adaptador;
  22.        private DataSet datos;
  23.  
  24.        private void Altas_Load(object sender, EventArgs e)
  25.        {
  26.            conexion = new SqlConnection("Data Source=LAARDILLA\\SQLEXPRESS;Initial Catalog=administracion;Integrated Security=True");
  27.            adaptador = new SqlDataAdapter();
  28.            SqlCommand alta = new SqlCommand("insert into empleados (dni,nombre,apellido,direccion,fecha_ingreso,salario,dpto_nro) values (@dni,@nombre,@apellido,@direccion,@fecha_ingreso,@salario,@dpto_nro)", conexion);
  29.            adaptador.InsertCommand = alta;
  30.  
  31.            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@dni", SqlDbType.Int));
  32.            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@nombre", SqlDbType.VarChar));
  33.            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@apellido", SqlDbType.VarChar));
  34.            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@direccion", SqlDbType.VarChar));
  35.            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@fecha_ingreso", SqlDbType.VarChar));
  36.            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@salario", SqlDbType.Int));
  37.            adaptador.InsertCommand.Parameters.Add(new SqlParameter("@depto_nro", SqlDbType.Int));
  38.  
  39.  
  40.  
  41.        }
  42.  
  43.        private void button1_Click(object sender, EventArgs e)
  44.        {
  45.            adaptador.InsertCommand.Parameters["@dni"].Value=textBox1.Text;
  46.            adaptador.InsertCommand.Parameters["@nombre"].Value = textBox2.Text;
  47.            adaptador.InsertCommand.Parameters["@apellido"].Value = textBox3.Text;
  48.            adaptador.InsertCommand.Parameters["@direccion"].Value = textBox4.Text;
  49.            adaptador.InsertCommand.Parameters["@fecha_ingreso"].Value = textBox5.Text;
  50.            adaptador.InsertCommand.Parameters["@salario"].Value = textBox6.Text;
  51.            adaptador.InsertCommand.Parameters["@depto_nro"].Value = comboBox1.SelectedValue;
  52.  
  53.            try
  54.            {
  55.                conexion.Open();
  56.                adaptador.InsertCommand.ExecuteNonQuery();
  57.                Borrar();
  58.  
  59.            }
  60.            catch(SqlException ex)
  61.            {
  62.                MessageBox.Show(ex.ToString());
  63.            }
  64.            finally
  65.            {
  66.                conexion.Close();
  67.            }
  68.  
  69.           }
  70.        public void Borrar()
  71.        {
  72.            datos.Clear();
  73.            textBox1.Text = "";
  74.            textBox2.Text = "";
  75.            textBox3.Text = "";
  76.            textBox4.Text = "";
  77.            textBox5.Text = "";
  78.            textBox6.Text = "";
  79.        }
  80.  
  81.  
  82.    }
  83. }
  84.  

he revisado los tipos de datos de los campos en el sql server y coinciden con los del código....me podrían ayudar por favor a solucionar disclpen si me he expresado mal...son altas horas de la noche jejeje slds y muchas gracias... :-\


Título: Re: error de variable scalar
Publicado por: fran800m en 9 Julio 2014, 21:03 pm
¿Has definido el DataMember del combobox?
Igual también tienes que hacer casting porque SelectedValue devuelve object

PD: Te hablo de memoria.