在.NET中以编程方式替换参数值后,有没有办法获得CommandText
?有没有办法通过编程替换参数值后获取CommandText?
假设我们有一个命令:
let cmd = conn.CreateCommand()
cmd.CommandText <- "select * from smsqueue where smsqueueid=:pid"
cmd.CommandType <- CommandType.Text
cmd.Parameters.Add("pid", 0)
我想要得到的准备命令文本;这将是这样的:
select * from smsqueue where smsqueueid=0
有廓线仪来获取这些信息,但我想在代码中明确地做到这一点(例如,F#或C#)。
这是完全粗糙!我使用LINQ DataContext类的ExecuteCommand方法来获取类型化对象(我自己生成的)的列表,并且(愚蠢?)方法只是获取字符串SQL;问题是如果有人使用Oracle,它不会取代参数! [我讨厌数据集和Oracle没有LINQ,我没有找到一个好的NHibernate代码生成器 - 除此之外,我在NHibernate,NLog,F#等环境下工作! SoI生成类似于手写代码> :(] – 2011-01-23 09:16:23
@Kaveh:是使用命名参数的问题,但驱动程序仅支持位置参数?如果要使用带有Oracle的LINQ,可能需要查看。实体框架 – 2011-01-23 09:36:03