当前位置: 首页 > 面试题库 >

如何在.NET MySqlCommand中使用MySql用户定义的变量?

沈琨
2023-03-14
问题内容

我只想执行以下Mysql语句

SET @a = 1;SELECT @a;

与MySql.Data.MySqlClient

[System.Reflection.Assembly]::LoadWithPartialName("MySql.Data")

$password = 'mypassword'

$sql = "SET @a = 1;SELECT @a;"

$server = 'localhost'
$port = 3306
$database = 'test'
$User = 'root'


$conn=new-object MySql.Data.MySqlClient.MySqlConnection
$connectionstring =  "Server=$Server;Port=$port;Database=$DataBase;Uid=$User;Pwd=$Password;allow zero datetime=yes"
$conn.ConnectionString = $connectionstring 
$conn.Open()

$cmd=new-object MySql.Data.MySqlClient.MySqlCommand($sql,$conn)
$ds=New-Object system.Data.DataSet
$da=New-Object MySql.Data.MySqlClient.MySqlDataAdapter($cmd)
$da.fill($ds) 
$conn.close()
$ds.tables[0]

我收到一个致命错误。

当我用任一替换$ sql时

$sql = "SELECT DATABASE();"

要么

$sql = "SELECT 1;"

我得到了预期的结果。

我找到了这个问题,但是并不能解决我的问题。

我正在尝试将SQLIse(SQLPSX项目的一部分)移植到MySQL版本MySQLIse。

我想处理任何简单的有效mysql语句。

编辑:

我正在尝试运行sakila-
schema.sql
的一部分mysql
demo数据库安装脚本,该脚本由类似

mysql>源C:/temp/sakila-db/sakila-schema.sql;


问题答案:

我在此博客中找到了解决方案

我必须添加

;Allow User Variables=True

到连接字符串:

$connectionstring = "Server=$Server;Port=$port;Database=$DataBase;Uid=$User;Pwd=$Password;allow zero datetime=yes;Allow User Variables=True"

作品。我使用6.3.6.0版进行了测试。的MySql.Data



 类似资料:
  • 问题内容: 我正在尝试执行一个当前在phpMyAdmin中可用的查询,但是使用MySqlAdapter在.NET中执行该查询时不起作用。这是Sql语句。 它使用@rownum对从我的内部标量查询返回的每个不同的行进行编号。但是,如果我在.NET中使用它,则假定@rownum是一个参数并抛出异常,因为我没有定义它。 关于如何解决这个问题的任何想法?还是我获取行号的可能方法? 问题答案: 我发现此博客

  • 我有任务加载类别(按名称加载)和子类别中的所有产品。使用MySQL后,我创建了SQL查询: 正如你在类别名称中提到的“工具”。它工作得很好,但如果你有任何建议-你非常欢迎。在我的项目中,我正在使用Hibernate,名为Query。问题在于变量@pv。现在它未被编译,并将异常作为“意外令牌…”抛出有人知道如何在NamedQuery中使用变量吗?

  • 本文向大家介绍如何在MySQL LIKE子句中使用用户变量?,包括了如何在MySQL LIKE子句中使用用户变量?的使用技巧和注意事项,需要的朋友参考一下 使用该函数,我们可以在LIKE子句中使用用户变量。语法如下。 为了理解上述语法,让我们首先创建一个表。创建表的查询如下。 使用insert命令在表中插入记录。查询如下。 使用select语句显示表中的所有记录。查询如下 以下是输出。 这是在LI

  • 找到价格最高和最低的信息: mysql> SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop; mysql> SELECT * FROM shop WHERE [email protected]_price OR [email protected]_price; +---------+--------+-------+ |

  • 用户定义变量 数据库支持用户自定义变量,自定义变量使用@开头,能够被用于任何表达式和参数中。变量是不能持久的,作为范围为 session,这就意味着变量只在定义它的那个 session 里是有效的。一个变量通常使用 SET命 令来声明: SET @USER = 'Joe'; 变量也可以通过使用 SET() 方法来改变值。在查询中可以直接使用: SET @TOTAL = NULL; SELECT

  • 问题内容: 我需要在Hibernate中使用带有变量的本地SQL查询。 但是hibernate抛出错误信息:参数前缀后不允许有空格 因此,与:= mysql变量分配和hibernate变量分配存在冲突。 这是我的SQL查询: hibernate代码(jpa语法): 我无法使用存储过程,因为我的SQL查询是动态生成的(“ Level”可以是“ int”或“ force” …) 我怎样才能做到这一点