我有个很奇怪的问题!
我写了一封信 C#
控制台应用程序从预定义的ip地址获取数据,经过计算,我想把数据插入到一个 MySQL
数据库,以便我可以读取它,并做更多的计算,如果需要使用 PHP
web应用程序,
在我的笔记本电脑上一切都很正常,
当我运行 C#
在服务器上的应用程序,数据被完美地处理,直到最后一步插入它,但是当它插入数据时,它就像一个整数,没有小数。
我使用vs studio工具并跟踪我的变量,即使在 sql
但在数据库里,他们失去了小数。
我在笔记本电脑上使用Windows10,服务器上有WindowsServer2016
这是你的答案 C#
代码:
public static string send_to_db(int uid, float prs, float btlvl, float f1, float f2, double t1, double t2, int dState, int supState, string datetime, string stmt)
{
MySqlConnection connection = null;
string feedback = "";
double min_prs_val = 0, max_prs_val = 0;
// voltage to percentage the btlvl
btlvl = (btlvl * 100) / 12;
try
{
connection = new MySqlConnection(stmt);
connection.Open();
MySqlCommand insertData = new MySqlCommand($"INSERT INTO pm_data_records (pm_detail_id, pm_pressure, pm_battery_charge, pm_flow1, pm_flow2, pm_tot1, pm_tot2, pm_door, pm_sup, pm_sent_time) VALUES('{uid}','{prs}','{btlvl}','{f1}','{f2}','{t1}','{t2}','{dState}','{supState}','{datetime}')", connection);
insertData.ExecuteNonQuery();
MySqlCommand updateData = new MySqlCommand($"UPDATE pm_data_last SET pm_detail_id = '{uid}', pm_pressure = '{prs}', pm_battery_charge = '{btlvl}', pm_flow1 = '{f1}', pm_flow2 = '{f2}', pm_tot1 = '{t1}', pm_tot2 = '{t2}', pm_door = '{dState}', pm_sup = '{supState}', pm_sent_time = '{datetime}' WHERE pm_detail_id = '{uid}'", connection);
updateData.ExecuteNonQuery();
...
我在服务器上安装了visualstudio,从我的笔记本电脑上复制了代码并在那里进行了编译(在安装了 MySQL
对于vs文件),仍然没有小数,
我没主意了,帮帮我!tnx公司
1条答案
按热度按时间ctzwtxfj1#
您不应该像这样使用字符串插值来构建带有参数的查询字符串。
这是安全问题;
您的值可能没有正确格式化和转义。所以也许问题确实存在。
你应该这样做:
检查数据库中列的数据类型。也许他们不允许浮点数。