mysql - 从 MySqlCommand 获取 "final"准备好的语句

标签 mysql vb.net prepared-statement

我有以下 MySqlCommand:

Dim cmd As New MySqlCommand
cmd.CommandText = "REPLACE INTO `customer` VALUES( ?customerID, ?firstName, ?lastName)"

With cmd.Parameters
 .AddWithValue("?customerID", m_CustomerID)
 .AddWithValue("?firstName", m_FirstName)
 .AddWithValue("?lastName", m_LastName)
End With

我有一个处理 MySqlCommands 执行的类,我想让它把每个查询记录到一个文件中。我可以检索正在执行的查询/命令:

cmd.CommandText

但这只是返回带有参数(?customerID、?firstName 等)的原始 CommandText,而不是 AddWithValue 函数添加的实际替换值。我如何找出执行的实际“最终”查询?

最佳答案

我做了以下事情:

dim tmpstring as string = MySqlCommand.CommandText
For each p as MySqlParameter in MySqlCommand.parameters
    tmpstring = tmpstring.replace(p.ParameterName, p.Value)
Next

这似乎输出了你需要的一切

关于mysql - 从 MySqlCommand 获取 "final"准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1355047/

相关文章:

sql-server - VB.net 中的 HTTPHandler 用于使用 Plupload 上传文件

.net - 基类中的事件

java.sql.SQLDataException : An attempt was made to get a data value of type 'BOOLEAN' from type 'DATE' 异常

mysql - 在不使用 IN 运算符的情况下将一组值传递给 WHERE 子句

php - 添加分页代码后的结果在 PHP 中变得困惑

jquery - 如何将数据发送到代码隐藏的函数

Java 双端队列/准备语句内存泄漏

mysql - *实际*精确的 MySQL 全文搜索

sql - 如何将2个临时表加在一起