首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlCommand到T-SQL

SqlCommand到T-SQL
EN

Stack Overflow用户
提问于 2010-06-03 16:54:35
回答 2查看 486关注 0票数 0

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

EN

回答 2

Stack Overflow用户

发布于 2010-06-03 17:00:00

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

这个问题也有一些有趣的信息:How does SqlCommand sanitize parameters?

票数 0
EN

Stack Overflow用户

发布于 2010-06-03 17:14:55

我实际上在考虑类似这样的扩展(不能很好地工作,只是想法):

代码语言:javascript
复制
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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2964459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档