2012-02-26 25 views
0

このようなクエリを作成したいと思います。VBでmysqlコマンドでsql変数を実行する方法

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

私がmysqlクエリブラウザでテストするとうまくいきます。

これで、VBでmysqlCommandを実行したいと思います。もちろん@rownumはパラメータとして定義され、その値を待っています。どのようにVBでそのクエリを実行できますか?

答えて

1

あなたは、コマンドのパラメータに変数を追加する必要があります。

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

一部のマニュアルはここにある:http://dev.mysql.com/doc/refman/5.0/es/connector-net-examples-mysqlparametercollection.html

+0

私は@ rownumで@ rownumをコマンドテキストから置き換えることを意味しましたか?私は試しましたが、それは私の構文上のエラーを与える.. :( –

0
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> 
1

あなたは、接続文字列にこのキーを追加する必要があります。「ユーザー環境変数を許可します=真;

+0

ありがとう!何時間もこれを理解しようとしている! –

関連する問題