Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取包含参数的完整sql查询_C#_Sql_Sql Server 2008_Sqlparameter - Fatal编程技术网

C# 如何获取包含参数的完整sql查询

C# 如何获取包含参数的完整sql查询,c#,sql,sql-server-2008,sqlparameter,C#,Sql,Sql Server 2008,Sqlparameter,最近,我跳进了SQL中的参数化查询。我现在收到一个关于执行查询的日期的投诉 calendar System.Globalization.GregorianCalendar中不支持由字符串表示的日期时间 当我得到查询时,我得到参数化的查询字符串 SELECT * FROM Table WHERE field = @p_param 为了调试它,我需要得到的是 SELECT * FROM Table WHERE field = "2012-03-12 14:09:00" 我到底该怎么做?我怀疑它很

最近,我跳进了SQL中的参数化查询。我现在收到一个关于执行查询的日期的投诉

calendar System.Globalization.GregorianCalendar中不支持由字符串表示的日期时间

当我得到查询时,我得到参数化的查询字符串

SELECT * FROM Table WHERE field = @p_param
为了调试它,我需要得到的是

SELECT * FROM Table WHERE field = "2012-03-12 14:09:00"
我到底该怎么做?我怀疑它很简单,但我就是看不见

datetime参数将与以下参数一起添加:

sql2.Parameters.Add("@p_UpdateTime", SqlDbType.DateTime).Value = DateTime.Parse(updateTime);
并且正常运行时间正在设置中

String updateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ff");

可以按如下方式转换参数:

CONVERT(VARCHAR(19), @p_param, 120)

其中120是yyyy-mm-dd hh:mi:ss(24小时)的转换代码。

使用SQL Server探查器(随所有SQL Server一起提供)。它将显示发送到SQL server的完整命令。

打开SQL server探查器,跟踪针对SQL server执行的操作。请参阅有关如何使用该工具的基本说明。

看起来您正在发送字符串值。这是有问题的,因为
DateTime.Format
根据当前线程区域性而变化

传入参数时,请尝试以下操作:

DateTime dateParam = GetDateParam();

_sqlCommand.Parameters.Add(
    new SqlParameter
    {
        DbType = DbType.Date,
        ParameterName = "@p_param",
        Value = dateParam 
    });

现在我已经修复了它,当我需要使用ss时,我使用了ff几秒钟。您的命令是什么样子的?将代码张贴在设置查询的位置,然后如何打印完整查询。从外观上看,可能是您意外地将p_param变量作为字符串包含了进来?关键是:SQL命令永远不会转换为您期望的第二个字符串!带有参数的SQL命令与参数列表一起发送到SQL Server。在SQL命令中,参数值永远不会被替换为字符串-因此您无法获得该表示形式-它将永远不存在!这已经得到了回答。您不能对db运行SQL profiler来查看正在执行的命令吗?我总是运行一个查询来获取最近运行的查询,是否有指向使用探查器获取查询的指南的链接?我总是打开它,启动bog标准跟踪,执行程序直到只执行查询,然后暂停跟踪。查询通常是最新的或其中之一。它在工具下显示的选项J不在server 2005 sql management中,也不在我的2010 sql management中。请查看如何打开它。谁曾将其标记为-1,请说明原因!正是这个问题导致了这个问题,因为我最终发现了它>:(坦斯克·马丁我想我有:S@Dan感谢您恢复了一个2年前的旧线程,问题是查询而不是如何输出参数化查询,如果您希望这样做,请尝试另一次搜索,因为这里有另一个问题与答案。@Neo问错问题不是我的错。我“恢复”这是因为它是#1搜索结果。不管问题有多旧,信息都应该更新为正确,或者作为一个整体删除。@Dan明白,在这种情况下,我会将处理此问题的代码添加到答案中。