SQL nvarchar to C# CLR



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

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

我遇到的问题是当SQL实例名称或数据库名称具有反斜杠时(例如。 machinename2008r2)。

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

提前谢谢。

确保在将字符串传递给存储过程之前进行参数化。不知道您设置了什么作为数据访问代码,但是,例如,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;
这是一个

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

(例如)

 {MachineName\NamedInstance} 

最新更新