簡體   English   中英

SqlCommand到T-SQL

[英]SqlCommand to T-SQL

有什么方法可以將SqlCommand對象轉換為發送到SQL Server的實際T-SQL命令嗎?

我認為不是這樣,參數和查詢文本分別發送到SQL Server,並且SQL Server相應地處理它們。 您可以從SqlCommand.CommandText獲取查詢,並且參數存儲在SqlCommand.Parameters集合中。 您必須進行一些字符串操作才能將其轉換為查詢,但是即使那樣,您仍然具有與發送到SQL Server的內容不同的功能。

這個問題也有一些有趣的信息: SqlCommand如何清除參數?

我實際上是在考慮類似這種擴展的東西(效果不好,只是個主意):

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();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM