我有一个问题,我在下面简化了。 我有一个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
我希望你理解我的问题。如果我不清楚请告诉我
答案 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")