好吧,我确信我不是唯一一个想知道这个问题的人 =)
简而言之,是否可以使用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。当我需要调试某个函数时,我会在其中一个函数中放置一个中断,以查看它将传递给数据库的内容。所以这将是运行时。当到达断点时:
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 多个参数。
最佳答案
这就是你想要的吗?
String paramStr = String.Format("'{0}', '{1}', '{2}', '{3}', '{4}'", a1, a2, a3 ,a4,a5);
我应该指出,将这样的字符串发送到数据库可能会导致 SQL Injection
选项 2:
要将其打印到中间窗口,您可以使用以下技巧:
- 创建断点
- 右键单击红点 ->“点击时”。
- 在新屏幕中选择“打印消息”复选框
- 在文本框中输入上面的 String.Format,但两侧各有一个大括号:
{ String.Format(.....) }
有关您可以在该消息中打印的参数的更多信息:http://msdn.microsoft.com/en-us/library/232dxah7.aspx
关于C# 参数值转为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12390149/