【发布时间】:2012-09-12 14:12:46
【问题描述】:
好的,我确定我不是唯一一个对此感到疑惑的人 =)
简而言之,是否可以使用VisualStudio进行转换:
string a1, string a2, string a3, string a4, string a5, string a6
变成一个类似的字符串:
"'value1', 'value2', 'value3', 'value4', 'value5', value6'"
(不用担心确切的格式,我可以自己处理)?
背景: 我经常有调用接受大量参数的存储过程的函数,有时(调试)我需要构建“exec dbo.storedprocname param1,param2 ....”字符串并直接在服务器上运行它。目前我必须手动构建字符串,我希望有一种简单的方法可以在 VisualStudio 的即时窗口中打印出来
编辑(应大众需求): 我正在使用 Linq2SQL(是的,我知道它已经过时了)并且里面有 100 多个 SP。当我需要调试一个函数时,我会在其中一个函数中设置一个中断,以查看它将传递给数据库的内容。所以这将是 RUNTIME。当它到达断点时:
public static void MethodCreatedByLINQ2Sql(string param1, string param2, string param3, ...)
{
context.mystoredprocedure(param1, param2, param3...); //<---breakpoint
}
我想以某种方式(无需指定每个参数)打印出一个分隔字符串,我可以剪切并粘贴到 SSMS2008(试图节省时间)以构建这样的字符串
exec dbo.mystoredprocedure [['value1', 'value2', 'value3'......]] <--- pasted value from VisualStudio
不,我不想做 SQLInjections 或类似的事情。我只是想节省时间 - 其中一些 SP 有 20 多个参数。
【问题讨论】:
-
你听说过
List<string>吗? -
您不应该将 SQL 查询构建为字符串。您应该使用参数化查询。使用
exec特别危险,应尽可能避免。 -
确定你的方法最终会构建要执行的 SQL 字符串吗?
-
如果您只是希望将实际的原始查询发送到 SQL 服务器,那么将探查器附加到 SQL 实例可能会产生更好的结果。无论代码中发生了什么,它都会准确地显示 SQL 实例接收到的内容。
-
你是指设计时还是运行时?
标签: c# visual-studio