-1

我在 SQL 中有一个存储过程,它将数据库的名称和服务器名称传递给用 C# 编写的程序集。c#汇编中调用的方法如下

Private static void GetData(string dbname, string servername)
{
   ---blah
   ---blah
   ---blah
}

我遇到的问题是 SQL 实例名称或数据库名称有反斜杠(例如。machinename\2008r2)。

运行存储过程无法识别的字符时出现异常\。在调用程序集之前,我尝试了基本的操作,例如在存储过程中替换\\\,这也失败了。

提前致谢。

4

2 回答 2

0

确保在将字符串传递给存储过程之前进行参数化。不知道您将什么设置为数据访问代码,但例如,SqlCommand 类包含一个参数集合:

 SqlCommand command= new SqlCommand("StoredProc", connection);
 command.CommandType = CommandType.StoredProcedure;
 command.Parameters.Add("@name", SqlDbType.NVarChar);
 command.Parameters["@name"].Value = dbName;
 command.Parameters.Add("@server", SqlDbType.NVarChar);
 command.Parameters["@server"].Value = server;
于 2013-10-23T14:06:02.513 回答
0

这是一个转义字符。您需要使用两个反斜杠。

(例如)

 {MachineName\\\NamedInstance} 
于 2013-10-23T14:02:30.933 回答