SoloCodigo
CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: mandrake_0219 en Viernes 19 de Junio de 2009, 15:53
-
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.
-
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....
-
Busca sobre la configuracion Regional
http://www.google.com.mx/search?hl=es&q ... scar&meta= (http://www.google.com.mx/search?hl=es&q=%22referencia+cultural%22+|+%22configuracion+regional%22++.net&btnG=Buscar&meta=" onclick="window.open(this.href);return false;)
Saludos
-
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