从SQLCommand使用参数完成查询

时间:2016-09-17 07:20:50

标签: sql-server vb.net

使用SQLCOmmand在数据库中插入行。 SQL命令正在使用参数。

要在立即窗口调试时获取查询,请使用

?_cmd.CommandText  
Result:
    "UPDATE TABLE SET Smth=@Smth, Smth2=@Smth2 "

如何获取完整的查询,而不是@Smth和@Smth2将从参数中读取值?

3 个答案:

答案 0 :(得分:1)

如果您有权访问SSMS,那么您可以使用SQL Server Profiler跟踪VB.NET应用程序在运行时发出的实际SQL命令。

请注意,运行SQL Server Profiler会在数据库服务器上产生性能开销,因此强烈建议不要在生产服务器或服务器上运行它,否则会影响其他服务器。

有关如何开始使用SQL Server Profiler的一些链接......

https://www.mssqltips.com/sqlservertutorial/272/profiler-and-server-side-traces/

http://blog.sqlauthority.com/2009/08/03/sql-server-introduction-sql-server-2008-profiler-complete/

答案 1 :(得分:0)

您可以编写辅助方法:

public static class Helper
{
    public static string ToString(this DbParameterCollection params, string query)
    {
        return params.Cast<DbParameter>().Aggregate(query, (c, p) => c.Replace(p.ParameterName, p.Value.ToString()));
    }
}

答案 2 :(得分:0)

尝试:

INSERT INTO TABLE SET Smth=@Smth, Smth2=@Smth2 WHERE <somecondition>
Select @Smth,@Smth2