如何在VB中使用mysqlcommand执行sql变量

问题描述:

我想做这样的查询。如何在VB中使用mysqlcommand执行sql变量

SELECT @rownum:[email protected]+1 'rank' FROM (SELECT @rownum:=0) r 

当我在我的mysql查询浏览器上测试它时,它工作正常。

现在,我想用mysqlCommand在VB中执行它。当然@rownum被定义为一个参数并等待它的值。我怎样才能在VB中执行该查询?

您需要将变量添加到命令的参数:

command.Parameters.AddWithValue("@rownum", rownum) 

有些文档是在这里:http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlparametercollection.html

+0

你的意思是我再次用@ rownum从我的命令文本中替换@ rownum吗?我试过了,但它给了我一个语法上的错误.. :( – 2012-02-27 12:23:16

dim conn As New MySqlConnection <br> 
dim comm As New MySqlCommand<br><br> 
dim dAdapter As New MySqlDataAdapter<br> 
dim ddata As New DataSet<br> 

conn.ConnectionString = "DATABASE=" & ddatabase & ";SERVER=" & Trim(TextBox1.Text) & ";user id=dev;password=revolution;port=" & TextBox3.Text & " ;charset=utf8;<b>Allow User Variables=True" </b><br> 
conn.Open() <br> 
<br> 
comm.Connection = conn<br> 
comm.CommandText = "set @rownum = 10"<br> 
comm.ExecuteNonQuery() <br> 
<br> 
ddata.Clear()<br> 
ddata.Tables.Clear()<br> 
comm.Connection = conn<br> 
comm.CommandText = "select @rownum rownum"<br> 
dAdapter.SelectCommand = comm <br> 
dAdapter.Fill(ddata)<br> 
<br> 
msgbox(ddata.Tables(0).Rows(0).Item("rownum")) <br> 

必须把这个键添加到您的连接字符串:“允许用户变量= TRUE;”

+0

谢谢!一直试图找出这个好几个小时! – 2017-05-31 08:59:06