【问题标题】:Dot separated value is inserted instead of comma in asp在asp中插入点分隔值而不是逗号
【发布时间】:2020-05-31 16:18:01
【问题描述】:

我在经典 ASP 中有点“新鲜”,我在经典 ASP 中有以下插入 SQL 查询,我不能让它从 MS Access 数据库中的 CSV 文件中插入逗号分隔值,但它会转换它以点分隔千值。

例如: 价格 = "49,55"

insert_sql = "INSERT INTO table (price) VALUES ('" & price & "')
DataConn.execute(insert_sql)

我尝试将其转换为:

CDbl(price) or FormatNumber(price)

但我得到的毕竟是 4.955,00

我尝试过更改本地化,但我仍然遇到同样的问题。

P.S.:我知道上面的代码很容易受到 SQL 注入攻击,但现在我正试图了解什么是错误的,或者我忘记了什么。

谢谢。

【问题讨论】:

  • 问题出在语言环境上。您可以在 presentation 中使用逗号作为小数分隔符,但不能在代码中使用。内部代码十进制值看起来像 49.55.
  • @AlexKudryashev 我尝试在标头中使用 Session.LCID 更改区域设置,但我仍然遇到同样的问题。
  • 确保您生成的 SQL 查询看起来像这样INSERT INTO table (price) VALUES (49.55)
  • @AlexKudryashev 好的,它的工作方式是使用函数 Replace([variable], ",", "."),一切都很好!谢谢!

标签: sql asp.net database ms-access


【解决方案1】:

使用 Str 强制使用 dot 作为小数点分隔符:

insert_sql = "INSERT INTO table (price) VALUES (" & Str(price) & ")"

然后,为了显示价格,应用您喜欢的任何格式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-05
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多