c# - 插入具有逗号 (,) 用于 "floating point"的区域性的浮点值

标签 c# .net sql sql-server

我有这样的东西:

foo { a = 1, b = 2, c = 98,3 }

我动态生成插入查询,所以结束时是这样的:

insert foos(a,b,c) (1, 2, 98,3)

有人知道如何解决这个问题吗?

最佳答案

简单的答案:首先不要使用文本来插入值。使用参数化 SQL 查询。

这不仅限于数字 - 它对于日期和时间也特别重要。从概念上讲,您不是在处理“带逗号的数字”——您是在处理一个数字。 SQL 恰好是我们在数据库和客户端之间传输数据的方式,但是参数化 SQL 允许我们将值保持为值,而无需在两者之间进行无意义且容易出错的文本转换。最后,参数化查询对于在传输文本值时防止 SQL 注入(inject)攻击非常重要。

基本上,将“值”(进入参数)和保留在文本中的“SQL 代码”的概念分开。

只是重新格式化现有的包含值的 SQL,直到它碰巧工作,充其量是一个脆弱的解决方案。

关于c# - 插入具有逗号 (,) 用于 "floating point"的区域性的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3296922/

相关文章:

c# - 找到最好的区间匹配结果

c# - 我如何测试与 NUnit 的契约(Contract)?

c++ - 在 VB.Net 中使用 C++ dll 时出现异常

MySQL:不同值的最大出现次数的计数

c# - 正则表达式,提取编号列表(多行)

c# - 如何在单个 LINQ 查询中使用 Group By、Sum 和 Contains?

sql - SQL 事务的实际成本是多少?

sql - 无重复地连接涉及 LEFT JOIN 的四个表

.Net 程序集绑定(bind)重定向与不同的公钥 token

c# - 重新加载 ServiceHost 的服务配置?