C# T-SQL的SqlCommand

C# T-SQL的SqlCommand,c#,C#,有没有办法将SqlCommand对象转换为实际的T-SQL命令,然后发送到SQL Server?我不这么认为,参数和查询文本分别发送到SQL Server,SQL Server会相应地处理它们。可以从SqlCommand.CommandText获取查询,参数存储在SqlCommand.Parameters集合中。您必须执行一些字符串操作才能将其转换为查询,但即使这样,您也有一些不同于发送到SQL Server的内容 这个问题也有一些有趣的信息:我实际上在想这样的扩展不好用,只是想法: publi

有没有办法将SqlCommand对象转换为实际的T-SQL命令,然后发送到SQL Server?

我不这么认为,参数和查询文本分别发送到SQL Server,SQL Server会相应地处理它们。可以从SqlCommand.CommandText获取查询,参数存储在SqlCommand.Parameters集合中。您必须执行一些字符串操作才能将其转换为查询,但即使这样,您也有一些不同于发送到SQL Server的内容


这个问题也有一些有趣的信息:

我实际上在想这样的扩展不好用,只是想法:

public static string ToQuery(this SqlCommand command)
{
  StringBuilder sb = new StringBuilder();
  sb.Append("exec ");
  sb.Append(command.CommandText);

  List<string> parameters = new List<string>();

  for (int i=0; i<command.Parameters.Count;i++)
  {
    if (command.Parameters[i].Direction != ParameterDirection.ReturnValue)
    {
      parameters.Add(string.Format(" {0}={1}", command.Parameters[i].ParameterName, command.Parameters[i].Value));
    }
  }

  if (parameters.Count > 0) sb.Append(string.Join(",", parameters.ToArray()));

  return sb.ToString();
}
欺骗: