[英]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.