• Domingo 22 de Diciembre de 2024, 08:36

Autor Tema:  MySql + C# error tipo de dato  (Leído 2841 veces)

mandrake_0219

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
MySql + C# error tipo de dato
« en: Viernes 19 de Junio de 2009, 15:53 »
0
Hola a todos.
Estoy haciendo una aplicacion en C# + WPF y uso una BD mysql. Se trata de un programa para administrar restaurantes.
Soy un poco novato, y mi problema es a la hora de registrar en la BD, las ventas del dia. El por que? pues estoy casi
seguro que es por el tipo de dato que uso en la DB para registrar el precio final.
Version de MySql = 5.1.30
SqlYog = 8.01
windows xp sp2
C# express edition 2008

/*Column Information For - "nameBD".sale_history*/
------------------------------------------------

Field       Type         Collation          Null    Key     Default  Extra           Privileges                       Comment
----------  -----------  -----------------  ------  ------  -------  --------------  -------------------------------  -------
Sales_Id    int      (NULL)             NO      PRI     (NULL)   auto_increment  select,insert,update,references        
sale_name   varchar(50)  latin1_swedish_ci  YES             (NULL)                   select,insert,update,references        
sale_cant   int      (NULL)             YES             (NULL)                   select,insert,update,references        
sale_price  double       (NULL)             YES             (NULL)                   select,insert,update,references        
sale_date   datetime     (NULL)             YES             (NULL)                   select,insert,update,references  

y en el codigo c#:

        public void insertData(MySqlConnection conect,int sale_productCant,string sale_productName,double sale_productPrice)
        {
           
            try
            {
                MySqlCommand commandInsertAll = new MySqlCommand();
                MySqlCommand commandSelectInsertRow = new MySqlCommand();
                string insertRowEarningDate = "INSERT INTO sale_history (sale_name, sale_cant, sale_price, sale_date) Values ('" + sale_productName.ToString() + "', '" + Convert.ToInt32(sale_productCant) + "' , '" + Convert.ToDouble(sale_productPrice.ToString("##.##")) + "' , '" + DateTime.Now.ToString("yyyy-MM-dd") + "')";

                commandInsertAll.CommandText = insertRowEarningDate;

                commandInsertAll.Connection = conect;
                commandInsertAll.ExecuteNonQuery();
                conect.Close();
            }
            catch (MySqlException e)
            {
                MessageBox.Show("No se pudo agregar el contacto " + e.ToString());
            }

Error que me sale:

Data truncated for column "sale_price" at row 1.

opinino: solo pasa cuando el valor a ingresar es decimal ejemplo: 1.05 . con valores enteros no pasa nada malo... pero obviamente cuando muestro el contenido
de dicha tabla en un listview/datagrid me salen enteros... 6 0 9 cuando deberia ser: 6.00  0.35  9.85

Muchas gracias  de antemano, por cualquier tipo de ayuda, opinion, comentario o info que me puedan brindar para resolver este problemita.

mandrake_0219

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: MySql + C# error tipo de dato
« Respuesta #1 en: Sábado 27 de Junio de 2009, 18:23 »
0
Hola a todos, viendo y corrigiendo...me he dado cuenta que el error es este:

public void insertData(MySqlConnection conect,int sale_productCant,string sale_productName,double sale_productPrice)
        {
           
            try
            {
                MySqlCommand commandInsertAll = new MySqlCommand();
                MySqlCommand commandSelectInsertRow = new MySqlCommand();
               string insertRowEarningDate = "INSERT INTO sale_history (sale_name, sale_cant, sale_price, sale_date) Values ('" + sale_productName.ToString() + "', '" + Convert.ToInt32(sale_productCant) + "' , '" + sale_productPrice + "' , '" + DateTime.Now.ToString("yyyy-MM-dd") + "')";

(El valor en negrita...es el que tantas molestias me ha dado...quizas sea bobo, este error; pero bueno... hasta este punto el valor en negrita
me sale como un 1.05 y esta bien, solo que al llegar a------->)


                commandInsertAll.CommandText = insertRowEarningDate;

            (este otro punto en negrita... me sale que se ha cambiado el valor a: 1,05 y este valor no me lo acepta MySql.)


                commandInsertAll.Connection = conect;
                commandInsertAll.ExecuteNonQuery();
                conect.Close();
            }
            catch (MySqlException e)
            {
                MessageBox.Show("No se pudo agregar el registro de venta " + e.ToString());
            }

Como le puedo hacer... he intentado pero no logro nada. porfavor...si me pudieran echar una mano de ayuda, porfavor....

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: MySql + C# error tipo de dato
« Respuesta #2 en: Sábado 27 de Junio de 2009, 23:00 »
0
Busca sobre la configuracion Regional

http://www.google.com.mx/search?hl=es&q ... scar&meta=

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

mandrake_0219

  • Nuevo Miembro
  • *
  • Mensajes: 8
    • Ver Perfil
Re: MySql + C# error tipo de dato
« Respuesta #3 en: Domingo 28 de Junio de 2009, 01:54 »
0
Hola mucho gusto y muchas gracias por la info.
Tengo otro problema...
Al insertar un registro en la BD, me sale este error:

INSERT INTO breakfastmenu (_name, cant, description, price,last_update) Values ('man', 'C/u' , 'call' , '0.75' , '2009-06-27')

Error Code : 1467
Failed to read auto-increment value from storage engine

A que se debe y como puedo arreglarlo?

Soy novato en esto de BD. no se a que se debe...pienso que podria ser algo sobre el id que tengo en esa tabla...
la tabla esta:

/*Column Information For - *******.breakfastmenu*/
-------------------------------------------------

Field        Type         Collation          Null    Key     Default  Extra           Privileges                       Comment
-----------  -----------  -----------------  ------  ------  -------  --------------  -------------------------------  -------
ID           int(11)      (NULL)             NO      PRI     (NULL)   auto_increment  select,insert,update,references        
_name        varchar(50)  latin1_swedish_ci  YES             (NULL)                   select,insert,update,references        
price        double       (NULL)             YES             (NULL)                   select,insert,update,references        
cant         varchar(7)   latin1_swedish_ci  YES             (NULL)                   select,insert,update,references        
description  varchar(50)  latin1_swedish_ci  YES             (NULL)                   select,insert,update,references        
last_update  datetime     (NULL)             YES             (NULL)                   select,insert,update,references        

Lo raro es que antes funcionaba bien...antes de hacer lo que me dijiste arriba...aunque no creo que eso tenga algo q ver...
muchas gracias