none
Error de conversión al convertir una cadena de caracteres a datetime

    Pregunta

  • Tengo la siguiente cuestión y probe las conversiones pertinentes pero en este caso me tira error no se bien porque?

    ************************************************************************************************

    Error de conversión al convertir una cadena de caracteres a datetime.

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

    Detalles de la excepción: System.Data.OleDb.OleDbException: Error de conversión al convertir una cadena de caracteres a datetime.

    Error de código fuente:

    Línea 220:
    Línea 221:    comando.Connection.Open();
    Línea 222:    comando.ExecuteNonQuery();
    Línea 223:
    Línea 224:    conexion.Close();

    Este es el codigo que tengo:

     

    protected void Page_Load(object sender, EventArgs e)

    {

    this.Page.Title = "Minuta de Venta";

     

    //Obtener fecha actual

     

    DateTime date = DateTime.Now;

     

    string fecha = date.ToShortDateString();

    txtFechaVta.Text = fecha;

     

    }

     

    protected void btnGuardar_Click(object sender, EventArgs e)

    {

     

    string string1;

    string1 =

    ConfigurationSettings.AppSettings["SyBAutomotoresConnectionString2"];

     

    // Create a connection.

     

    SqlConnection connection = new SqlConnection(string1);

     

    // Create the DataSet.

     

    int cod_op = Convert.ToInt32(txtCodOperacion.Text);

     

    DateTime fechaVta = Convert.ToDateTime(txtFechaVta.Text);

     

    string id_empleado = txtIDEmpleado.Text;

     

    int cod_auto = Convert.ToInt32(txtCodAuto.Text);

     

    int id_contacto = Convert.ToInt32(txtIdContacto.Text);

     

    string string2 = ConfigurationManager.ConnectionStrings["ConnectionStringOleDB"].ConnectionString;

     

    OleDbConnection conexion = new OleDbConnection(string2);

     

    string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])

    VALUES ('"

     

    + cod_op + "','" + fechaVta + "','" + id_empleado + "','" + cod_auto + "','" + id_contacto + "')";

     

     

    OleDbCommand comando = new OleDbCommand(consulta, conexion);

    comando.Connection.Open();

    comando.ExecuteNonQuery();

    conexion.Close();

    conexion.Dispose();

    comando.Connection.Close();

     

     

    }

    viernes, 04 de marzo de 2011 23:28

Respuestas

  • exacto como dice Augusto, usa parametros, pero el ejemplo de la otra pregunta esta en vb.net

    ademas no has mencionado que db usas, al ser oleDb pueden ser varias, aunque imagino se trata de Access, porque si es sql server seria bueno suar el provider del mismo

     

    usa algo como esto

     

    protected void btnGuardar_Click(object sender, EventArgs e)
    {

        int cod_op = Convert.ToInt32(txtCodOperacion.Text);
        DateTime fechaVta = Convert.ToDateTime(txtFechaVta.Text);
        string id_empleado = txtIDEmpleado.Text;
        int cod_auto = Convert.ToInt32(txtCodAuto.Text);
        int id_contacto = Convert.ToInt32(txtIdContacto.Text);

        string string2 = ConfigurationManager.ConnectionStrings["ConnectionStringOleDB"].ConnectionString;
        using(OleDbConnection conexion = new OleDbConnection(string2))
        {
            conexion.Open();
         
            string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])
                                VALUES (@codop, @fechaVta, @idempleado, @codauto, @idcontacto)";

            OleDbCommand comando = new OleDbCommand(consulta, conexion);

            comando.Parameters.AddWithValue("@codop", cod_op);
            comando.Parameters.AddWithValue("@fechaVta", fechaVta);
            comando.Parameters.AddWithValue("@idempleado", id_empleado);
            comando.Parameters.AddWithValue("@codauto", cod_auto);
            comando.Parameters.AddWithValue("@idcontacto", id_contacto);
           
            comando.ExecuteNonQuery();

        }
    }

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 04 de marzo de 2011 23:47

  • pero si usas Sql Server no uses OleDb, usa la funcionaldiad de SqlClient

    o sea SqlConnection

     

    [ADO.NET] Parte 5 - Ejemplos Simples Operaciones CRUD

    veras que no uso OleDb si se trata de sql server

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Laura Arevalo jueves, 10 de marzo de 2011 21:00
    jueves, 10 de marzo de 2011 14:34

Todas las respuestas

  • hola ,mira se parece un poc a esta pregunta

    http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/202814ad-70e9-4254-b67a-7e6c8d16ddae

    dbes utilizar parámetros como sugiere Leandro Tuttini.

    viernes, 04 de marzo de 2011 23:32
  • exacto como dice Augusto, usa parametros, pero el ejemplo de la otra pregunta esta en vb.net

    ademas no has mencionado que db usas, al ser oleDb pueden ser varias, aunque imagino se trata de Access, porque si es sql server seria bueno suar el provider del mismo

     

    usa algo como esto

     

    protected void btnGuardar_Click(object sender, EventArgs e)
    {

        int cod_op = Convert.ToInt32(txtCodOperacion.Text);
        DateTime fechaVta = Convert.ToDateTime(txtFechaVta.Text);
        string id_empleado = txtIDEmpleado.Text;
        int cod_auto = Convert.ToInt32(txtCodAuto.Text);
        int id_contacto = Convert.ToInt32(txtIdContacto.Text);

        string string2 = ConfigurationManager.ConnectionStrings["ConnectionStringOleDB"].ConnectionString;
        using(OleDbConnection conexion = new OleDbConnection(string2))
        {
            conexion.Open();
         
            string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])
                                VALUES (@codop, @fechaVta, @idempleado, @codauto, @idcontacto)";

            OleDbCommand comando = new OleDbCommand(consulta, conexion);

            comando.Parameters.AddWithValue("@codop", cod_op);
            comando.Parameters.AddWithValue("@fechaVta", fechaVta);
            comando.Parameters.AddWithValue("@idempleado", id_empleado);
            comando.Parameters.AddWithValue("@codauto", cod_auto);
            comando.Parameters.AddWithValue("@idcontacto", id_contacto);
           
            comando.ExecuteNonQuery();

        }
    }

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 04 de marzo de 2011 23:47
  • La base de datos es sql server 2005 y le puse el siguiente codigo de acuerdo el ejemplo y me sale el siguiente error?

    **************************************************************************************************

     protected void btnGuardar_Click(object sender, EventArgs e)
        {

            int cod_op = Convert.ToInt32(txtCodOperacion.Text);
            DateTime fechaVta = Convert.ToDateTime(txtFechaVta.Text);
            string id_empleado = txtIDEmpleado.Text;
            int cod_auto = Convert.ToInt32(txtCodAuto.Text);
            int id_contacto = Convert.ToInt32(txtIdContacto.Text);

            string string2 = ConfigurationManager.ConnectionStrings["ConnectionStringOleDB"].ConnectionString;
            using (OleDbConnection conexion = new OleDbConnection(string2))
            {
                conexion.Open();

                string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])
                                VALUES (@codop, @fechaVta, @idempleado, @codauto, @idcontacto)";

                OleDbCommand comando = new OleDbCommand(consulta, conexion);

                comando.Parameters.AddWithValue("@codop",txtCodOperacion.Text);
                comando.Parameters.AddWithValue("@fechaVta",txtFechaVta.Text);
                comando.Parameters.AddWithValue("@idempleado",txtIDEmpleado.Text);
                comando.Parameters.AddWithValue("@codauto",txtCodAuto.Text);
                comando.Parameters.AddWithValue("@idcontacto",txtIdContacto.Text);

                comando.ExecuteNonQuery();

            }
        }

    *********************************************************************************************

    Debe declarar la variable escalar "@codop".

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

    Detalles de la excepción: System.Data.OleDb.OleDbException: Debe declarar la variable escalar "@codop".

    Error de código fuente:

    Línea 233:      comando.Parameters.AddWithValue("@idcontacto",txtIdContacto.Text);
    Línea 234:
    Línea 235: comando.ExecuteNonQuery();
    Línea 236:
    Línea 237: }

    miércoles, 09 de marzo de 2011 13:07
  • En ves de usar el using podrías poner tu bloque de código en un bloque try-catch. Así agregas un breakpoint y debagueando te fijas bien cual es el error que te tira y en que linea se produce.

    Otra cosa que podrias usar es 

       comando.Parameters.Add("@parametro", SqlDbType.tipodelparametro).Value = valor

    esta es una manera mas segura de agregar parametros.

    Tambien como dijo Leandro ya que usas sql server es mejor utilizar el provider para sql. El cual esta en el espacio de nombres System.Data.SqlClient.

    Espero puedas encontrar tu error, yo no me doy cuenta cual podría ser. Te dije lo del debug para que tengas mas detalle de cual es el error.

    miércoles, 09 de marzo de 2011 13:50
  • hola

    sigue usando el using porque este permite la correcta destruccion del objeto de conexion

    solo que noto que declaras

    int cod_op = Convert.ToInt32(txtCodOperacion.Text);

    pero luego usas

    comando.Parameters.AddWithValue("@codop",txtCodOperacion.Text);

    si el valor del campo es un numero deberias usar

    comando.Parameters.AddWithValue("@codop", cod_op);

    no debes pasarle un string al parametro porque lo tomara como esto, un texto cuando debe ser un numero

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 09 de marzo de 2011 13:55
  • Bueno probé de todas las maneras pero el tema de la variable escalar me seguia molestando con su error, por consiguiente cambié en la base de datos la fecha del tipo datetime al tipo char y pude usar variables de esa manera y asi pude  insertar, por el momento me saca del paso pero me quedo con la duda... quedo asi:

    protected void btnGuardar_Click(object sender, EventArgs e)
        {
            string string1;
            string1 = ConfigurationSettings.AppSettings["SyBAutomotoresConnectionString2"];
            //        // Create a connection.
            SqlConnection connection = new SqlConnection(string1);
            //        // Create the DataSet.
            int codop = Convert.ToInt32(txtCodOperacion.Text);
            string  fechaVta = (txtFechaVta.Text);
            string idempleado = txtIDEmpleado.Text;
            int codauto = Convert.ToInt32(txtCodAuto.Text);
            int idcontacto = Convert.ToInt32(txtIdContacto.Text);

            string string2 = ConfigurationManager.ConnectionStrings["ConnectionStringOleDB"].ConnectionString;
            using (OleDbConnection conexion = new OleDbConnection(string2))
            {
                //conexion.Open();

                string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])
                                VALUES ('" + codop + "','" + fechaVta + "','" + idempleado + "','" + codauto + "','" + idcontacto + "')";

                OleDbCommand comando = new OleDbCommand(consulta, conexion);

                comando.Connection.Open();
                comando.ExecuteNonQuery();

                conexion.Close();
                conexion.Dispose();
                comando.Connection.Close();

             
            }
        }
        }

    miércoles, 09 de marzo de 2011 21:05
  • Hola , pero esque ahi sigues sin utilizar parámetros.
    miércoles, 09 de marzo de 2011 21:30
  • si lo se, el problema fue al usar parametros que me salia el error de la variable escalar, hasta instale el service pack 3 del sql server porq podria ser eso lei en el msdn microsoft asi que volviendo a variables y corrigiendo el campo fecha pude insertar, ya que empece a usar parametros porq no podia insertar la fecha en un principio por tener fecha del tipo datetime.
    miércoles, 09 de marzo de 2011 22:13
  • hola

    has aplciado lo que comente mas arriba ?

    o sea esto

     

    solo que noto que declaras

    int cod_op = Convert.ToInt32(txtCodOperacion.Text);

    pero luego usas

    comando.Parameters.AddWithValue("@codop",txtCodOperacion.Text);

    si el valor del campo es un numero deberias usar

    comando.Parameters.AddWithValue("@codop", cod_op);

    no debes pasarle un string al parametro porque lo tomara como esto, un texto cuando debe ser un numero

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 09 de marzo de 2011 22:52
  • Hola y probaste utiizar el

    Convert.ToDateTime(tucampo)?

    Saludos.

    jueves, 10 de marzo de 2011 0:46
  • hola

    has aplciado lo que comente mas arriba ?

    o sea esto

     

    solo que noto que declaras

    int cod_op = Convert.ToInt32(txtCodOperacion.Text);

    pero luego usas

    comando.Parameters.AddWithValue("@codop",txtCodOperacion.Text);

    si el valor del campo es un numero deberias usar

    comando.Parameters.AddWithValue("@codop", cod_op);

    no debes pasarle un string al parametro porque lo tomara como esto, un texto cuando debe ser un numero

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Si Leandro tambien probé de esa manera que me recomendaste y salia el error de declarar variable escalar
    jueves, 10 de marzo de 2011 11:40
  • Hola y probaste utiizar el

    Convert.ToDateTime(tucampo)?

    Saludos.


    Si probe esto

    DateTime fechaVta = Convert .ToDateTime(txtFechaVta.Text); y alli me salia el error de conversion de cadena de caracteres a datetime y en el tipo de datos del sql tenia declarado como datetime, y por eso solo me quedo declararlo como char y usar variables p q funcione.


    jueves, 10 de marzo de 2011 11:44
  • La base de datos es sql server 2005 y le puse el siguiente codigo de acuerdo el ejemplo y me sale el siguiente error?

    **************************************************************************************************

     protected void btnGuardar_Click(object sender, EventArgs e)
        {

            int cod_op = Convert.ToInt32(txtCodOperacion.Text);
            DateTime fechaVta = Convert.ToDateTime(txtFechaVta.Text);
            string id_empleado = txtIDEmpleado.Text;
            int cod_auto = Convert.ToInt32(txtCodAuto.Text);
            int id_contacto = Convert.ToInt32(txtIdContacto.Text);

            string string2 = ConfigurationManager.ConnectionStrings["ConnectionStringOleDB"].ConnectionString;
            using (OleDbConnection conexion = new OleDbConnection(string2))
            {
                conexion.Open();

                string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])
                                VALUES (@codop, @fechaVta, @idempleado, @codauto, @idcontacto)";

                OleDbCommand comando = new OleDbCommand(consulta, conexion);

                comando.Parameters.AddWithValue("@codop",txtCodOperacion.Text);
                comando.Parameters.AddWithValue("@fechaVta",txtFechaVta.Text);
                comando.Parameters.AddWithValue("@idempleado",txtIDEmpleado.Text);
                comando.Parameters.AddWithValue("@codauto",txtCodAuto.Text);
                comando.Parameters.AddWithValue("@idcontacto",txtIdContacto.Text);

                comando.ExecuteNonQuery();

            }
        }

    *********************************************************************************************

    Hola como te comentó Leandro Tuttini esto debiste haberlo pasado asi.

    using (OleDbConnection conexion = new OleDbConnection(string2))
            {
                conexion.Open();

                string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])
                                VALUES (@codop, @fechaVta, @idempleado, @codauto, @idcontacto)";

                OleDbCommand comando = new OleDbCommand(consulta, conexion);

                comando.Parameters.AddWithValue("@codop",cod_op);
                comando.Parameters.AddWithValue("@fechaVta",fechaVta );
                comando.Parameters.AddWithValue("@idempleado",id_empleado );
                comando.Parameters.AddWithValue("@codauto",cod_auto );
                comando.Parameters.AddWithValue("@idcontacto",id_contacto);

                comando.ExecuteNonQuery();

            }

    Asi le pasas la variable ya convertida o casteada.

    jueves, 10 de marzo de 2011 12:54
  • Si tambien probe asi y lo acabo de probar otra vez como me dijeron y sigue saliendo el error, no se porq de todas las maneras que me dijeron sale el tema de la variable escalar

     protected void btnGuardar_Click(object sender, EventArgs e)
        {
            string string1;
            string1 = ConfigurationSettings.AppSettings["SyBAutomotoresConnectionString2"];
            //        // Create a connection.
            SqlConnection connection = new SqlConnection(string1);
            //        // Create the DataSet.
            int codop = Convert.ToInt32(txtCodOperacion.Text);
            string fechaVta = (txtFechaVta.Text);
            string idempleado = txtIDEmpleado.Text;
            int codauto = Convert.ToInt32(txtCodAuto.Text);
            int idcontacto = Convert.ToInt32(txtIdContacto.Text);

            string string2 = ConfigurationManager.ConnectionStrings["ConnectionStringOleDB"].ConnectionString;
            using (OleDbConnection conexion = new OleDbConnection(string2))
            {
                conexion.Open();

                string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])
                                VALUES (@codop, @fechaVta, @idempleado, @codauto, @idcontacto)";

                OleDbCommand comando = new OleDbCommand(consulta, conexion);

                comando.Parameters.AddWithValue("@codop", codop);
                comando.Parameters.AddWithValue("@fechaVta", fechaVta);
                comando.Parameters.AddWithValue("@idempleado", idempleado);
                comando.Parameters.AddWithValue("@codauto", codauto);
                comando.Parameters.AddWithValue("@idcontacto", idcontacto);

                comando.ExecuteNonQuery();

            }

        }
    }

    Debe declarar la variable escalar "@codop".

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

    Detalles de la excepción: System.Data.OleDb.OleDbException: Debe declarar la variable escalar "@codop".

    Error de código fuente:

    Línea 237:      comando.Parameters.AddWithValue("@idcontacto", idcontacto);
    Línea 238:
    Línea 239: comando.ExecuteNonQuery();
    Línea 240:
    Línea 241: }

    jueves, 10 de marzo de 2011 13:34
  • que base de datos estas usando ?

    esto cuando falla lo pruebas desde el VS o haces el deploy en algun otro servidor ?

    has probado realziando un rebuild de la solucion?

     

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 10 de marzo de 2011 13:48
  • que base de datos estas usando ?

    esto cuando falla lo pruebas desde el VS o haces el deploy en algun otro servidor ?

    has probado realziando un rebuild de la solucion?

     

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Leandro Uso sql server 2005 y generé de nuevo la solucion pero sigue saliendo el mismo error
    jueves, 10 de marzo de 2011 14:05
  • Si tambien probe asi y lo acabo de probar otra vez como me dijeron y sigue saliendo el error, no se porq de todas las maneras que me dijeron sale el tema de la variable escalar

     protected void btnGuardar_Click(object sender, EventArgs e)
        {
            string string1;
            string1 = ConfigurationSettings.AppSettings["SyBAutomotoresConnectionString2"];
            //        // Create a connection.
            SqlConnection connection = new SqlConnection(string1);
            //        // Create the DataSet.
            int codop = Convert.ToInt32(txtCodOperacion.Text);
            string fechaVta = (txtFechaVta.Text);
            string idempleado = txtIDEmpleado.Text;
            int codauto = Convert.ToInt32(txtCodAuto.Text);
            int idcontacto = Convert.ToInt32(txtIdContacto.Text);

            string string2 = ConfigurationManager.ConnectionStrings["ConnectionStringOleDB"].ConnectionString;
            using (OleDbConnection conexion = new OleDbConnection(string2))
            {
                conexion.Open();

                string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])
                                VALUES (@codop, @fechaVta, @idempleado, @codauto, @idcontacto)";

                OleDbCommand comando = new OleDbCommand(consulta, conexion);

                comando.Parameters.AddWithValue("@codop", codop);
                comando.Parameters.AddWithValue("@fechaVta", fechaVta);
                comando.Parameters.AddWithValue("@idempleado", idempleado);
                comando.Parameters.AddWithValue("@codauto", codauto);
                comando.Parameters.AddWithValue("@idcontacto", idcontacto);

                comando.ExecuteNonQuery();

            }

        }
    }

     

    Debe declarar la variable escalar "@codop".

    Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

    Detalles de la excepción: System.Data.OleDb.OleDbException: Debe declarar la variable escalar "@codop".

    Error de código fuente:

    Línea 237:   comando.Parameters.AddWithValue("@idcontacto", idcontacto);

    Línea 238:

    Línea 239: comando.ExecuteNonQuery();


    Línea 240:

    dLínea 241: }

     

    hola,

    te sigue dando este error  ? o cual me puede expesificar .

    gracias

     


    ASP.NET
    jueves, 10 de marzo de 2011 14:11
  • Si ese mismo error es Enmanuel...Detalles de la excepción: System.Data.OleDb.OleDbException: Debe declarar la variable escalar "@codop"....en esa misma linea de codigo
    jueves, 10 de marzo de 2011 14:21

  • pero si usas Sql Server no uses OleDb, usa la funcionaldiad de SqlClient

    o sea SqlConnection

     

    [ADO.NET] Parte 5 - Ejemplos Simples Operaciones CRUD

    veras que no uso OleDb si se trata de sql server

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Laura Arevalo jueves, 10 de marzo de 2011 21:00
    jueves, 10 de marzo de 2011 14:34

  • hola,


    ese tipo de error ocurre cuando no tienes declarada un parramerto de tipo @codop , has esta prueba
    para ver si te funcionar quitale el @ que esta en la parte princial del string y prueba .

    tu codigo

      string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])" +
                                " VALUES (@codop, @fechaVta, @idempleado, @codauto, @idcontacto)";


                SqlCommand  comando = new SqlCommand(consulta, conexion);

                comando.Parameters.AddWithValue("@codop", codop);
                comando.Parameters.AddWithValue("@fechaVta", fechaVta);
                comando.Parameters.AddWithValue("@idempleado", idempleado);
                comando.Parameters.AddWithValue("@codauto", codauto);
                comando.Parameters.AddWithValue("@idcontacto", idcontacto);

                comando.ExecuteNonQuery();



    codigo actualizado

      string consulta = "INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])" +
                                " VALUES (@codop, @fechaVta, @idempleado, @codauto, @idcontacto)";


                SqlCommand  comando = new SqlCommand(consulta, conexion);

                comando.Parameters.AddWithValue("@codop", codop);
                comando.Parameters.AddWithValue("@fechaVta", fechaVta);
                comando.Parameters.AddWithValue("@idempleado", idempleado);
                comando.Parameters.AddWithValue("@codauto", codauto);
                comando.Parameters.AddWithValue("@idcontacto", idcontacto);

                comando.ExecuteNonQuery();

    Nota:

    Si tienes alguna duda hasmela saber.


    ASP.NET
    jueves, 10 de marzo de 2011 14:53
  • Laura como usas la conexion oledb creo que podrías utilizar algo asi.

     protected void btnGuardar_Click(object sender, EventArgs e)
     {
     using (OleDbConnection conexion = new OleDbConnection(ConfigurationManager.ConnectionStrings["cn"].ToString()))
     {
     conexion.Open();
    
     string lastname = Convert.ToString(TextBox1.Text);
     string firstname = Convert.ToString(TextBox2.Text);
     string title = Convert.ToString(TextBox3.Text);
     
    
    
     string consulta = @"INSERT INTO Employees ([LastName], [FirstName],[Title])
     VALUES (?,?,?)";
    
     OleDbCommand comando = new OleDbCommand(consulta, conexion);
    
     comando.Parameters.AddWithValue("@lastname", lastname);
     comando.Parameters.AddWithValue("@firstName", firstname);
     comando.Parameters.AddWithValue("@title", title);
     
    
     comando.ExecuteNonQuery();
    
    
    
     }
     }
    

    no he tenido tiempo de hacerlo con tu propio código pero la idea es en esta parte

    VALUES (?,?,?)";
    pornerle en ves de los parámetros  el signo ? como tantos campos vayas a actualizar o insertar.

    Aver pruébalo, a ver si te sirve.

    Saludos.

    jueves, 10 de marzo de 2011 15:00
  • Bueno al fin, despues de tanto buscar gracias a todos, logré con su ayuda lo siguiente:

    usar SqlConnection, insertar los datos y la fecha con el tipo datetime en el sql y todo. asi queda el codigo:

    ***********************************************************************************************

     protected void btnGuardar_Click(object sender, EventArgs e)
        {
            string consulta = @"INSERT INTO [Ventas_Vehiculos]([Cod_Operacion], [Fecha_Venta],[Id_Empleado], [Cod_Auto], [Id_Contacto])" +
                               " VALUES (@codop,@fechaVta,@idempleado,@codauto,@idcontacto)";

            int codop = Convert.ToInt32(txtCodOperacion.Text);
            DateTime fechaVta = Convert.ToDateTime(txtFechaVta.Text);
            string idempleado = txtIDEmpleado.Text;
            int codauto = Convert.ToInt32(txtCodAuto.Text);
            int idcontacto = Convert.ToInt32(txtIdContacto.Text);

            using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SyBAutomotoresConnectionString2"].ToString()))
            {
                   
                 SqlCommand comando = new SqlCommand(consulta, conn);

                comando.Parameters.AddWithValue("@codop", codop);
                comando.Parameters.AddWithValue("@fechaVta", fechaVta);
                comando.Parameters.AddWithValue("@idempleado", idempleado);
                comando.Parameters.AddWithValue("@codauto", codauto);
                comando.Parameters.AddWithValue("@idcontacto", idcontacto);

                conn.Open();
                comando.ExecuteNonQuery();

            }

        }

    jueves, 10 de marzo de 2011 21:06