【发布时间】:2013-10-23 13:54:45
【问题描述】:
我在 SQL 中有一个存储过程,它将数据库名称和服务器名称传递给用 C# 编写的程序集。 c#汇编中调用的方法如下
Private static void GetData(string dbname, string servername)
{
---blah
---blah
---blah
}
我遇到的问题是当 SQL 实例名称或数据库名称有反斜杠时(例如machinename\2008r2)。
运行存储过程无法识别的字符\ 时出现异常。在调用程序集之前,我尝试了一些基本的操作,例如在存储过程中将 \ 替换为 \\,但这也失败了。
提前致谢。
【问题讨论】:
-
将 \ 解释为转义字符的问题只会出现在字符串 literals 中,或者如果您将字符串传递给其他系统(例如
Regex)这也使用 \ 作为转义字符。如果值通过string参数到达您的代码中,则应该没有问题。您的问题中没有足够的代码来查看问题 - 您向我们展示的只是一个签名。 -
调用方法后失败,因此只有方法定义。方法中的第一行是 throw new exception("In GetData()");这是为了证明控制已经进入方法。但是永远不会引发异常。
-
那么,我希望很明显地提到,错误出现在您没有向我们展示的代码中。鉴于这显然是一个私有方法,其他一些代码正在调用它 - 那里有问题吗?
标签: c# sql string clr .net-assembly