【发布时间】:2018-03-14 21:04:07
【问题描述】:
我在下面的代码中插入浮点数。但它保存不正确。 例如,我插入 14.5 或 14,5 它节省了 145 请帮帮我
string table_no = gbox1.Text.Trim();
string gametime = time_hour.Text.Trim() + ":" + time_minute.Text.Trim();
string localdate = DateTime.Now.ToShortDateString();
float money = float.Parse(txtbox_1.Text, CultureInfo.InvariantCulture);
try
{
connection.Open();
baza("insert into stollar (id, table_no, gametime, localdate, money) values ('" + txt1.Text + "','" + table_no + "', '" + gametime + "', '" + localdate + "', '" + money + "' )");
connection.Close();
}
【问题讨论】:
-
不要对你的 sql 变量使用字符串连接!请改用参数化的 sql。您的列类型也应该正确并使用本机类型,而不是字符串表示。参数还应为每个值使用本机值(而不是字符串表示形式)。
-
为什么不将数字存储为数字,而不是在保存时转换并在加载时转换?
-
您永远不应该将用户输入直接插入到 SQL 语句中。使用参数化查询并将这些值(经过一些验证)作为参数传递。
-
您在这里依赖 很多 来自两个不同系统(C# 和 SQL)的字符串和数字之间的隐式转换。如果您的数据精度对您很重要,请明确维护您的数据类型。
-
旁注:看起来您可能正在尝试跨方法/类重用 SqlConnection 实例(谁知道)。也不要这样做,根据需要创建和处置您的 SqlConnection 实例。大多数提供商都内置了连接池。
标签: c#