【问题标题】:How can I execute LITERALLY this? [duplicate]我怎样才能从字面上执行这个? [复制]
【发布时间】:2019-10-06 07:00:41
【问题描述】:

我正在尝试在我的 C# 代码上对 MySQL 执行有效命令。我在 phpmyadmin 中尝试了 SQL 部分,它可以工作,但是现在,我必须在我的 C# 程序上执行它,我不知道该怎么做

C# 假设​​这个 @ 指的是一个参数并且它期望它,但它不是,我想要的是按原样执行这个命令。 我试图将其指定为 ("@TRIGGER_CHECKS","@TRIGGER_CHECKS") 之类的参数,但它也不起作用。

这是命令,它适用于 MySQL:

SET @TRIGGER_CHECKS = TRUE;

我想在 C# 上执行该命令,但我不知道该怎么做。 谢谢。

【问题讨论】:

  • 你能写一个存储过程来执行那个命令并调用这个过程吗?
  • 我正在尝试,但它在一个过程中不起作用,只有当我单独执行它时。
  • 你可以试试string query = @"SET @TRIGGER_CHECKS = TRUE;"看这里关于@的解释
  • @RaymondNijland @ 不是 C# 级别的特殊字符。 @"@""@" 是相同的。
  • @RaymondNijland MySqlCommand understands @TRIGGER_CHECKS 作为参数命名为TRIGGER_CHECKS

标签: c# mysql


【解决方案1】:

默认情况下,Connector/NET 假定任何以 @ 为前缀的变量都是 SQL 语句的参数。

为了让您的语句正确执行,您需要将;Allow User Variables=true 添加到您的连接字符串中。然后命令将按原样传递给服务器。

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 2015-12-02
    • 2019-04-10
    • 2019-04-09
    • 1970-01-01
    • 2018-02-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    相关资源
    最近更新 更多