准备Sql语句并存储在变量中

时间:2012-10-13 06:29:27

标签: mysql vb.net prepared-statement

我有一个问题,我在下面简化了。 我有一个sql语句,它由参数填写,即Prepared语句。是否有可能获得最终准备好的陈述并将其存储在变量

这是我想要做的但是它不起作用

Dim cmd As New MySqlCommand("UPDATE `users` SET `email` = ?email", con)
cmd.Prepare()
cmd.Parameters.AddWithValue("?name", "newEmail")

现在我试着这样做

Dim finalQuary As String = cmd.CommandText.ToString

我这样做希望在变量中得到这个:

"UPDATE `users` SET `email` = theEmailAddress"

但我得到了原始的毫无准备的陈述,即

UPDATE `users` SET `email` = ?email

我希望你理解我的问题。如果我不清楚请告诉我

2 个答案:

答案 0 :(得分:1)

替换是在执行时在MySQL端完成的。您基本上是在尝试获取函数的代码,并将所有参数替换为所提供的值。除非VB.NET模拟准备好的语句(我猜它不是),或者MySQL有一个API来返回一个内插字符串(据我所知它没有),你不能得到一个插值字符串版本查询。

答案 1 :(得分:0)

使用@代替?

Dim cmd As New MySqlCommand("UPDATE `users` SET `email` = @email", con)
cmd.Parameters.AddWithValue("@email", "newEmail")