Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与在SQL Server中搜索数据相关的问题_C#_Sql Server_Sql Server 2005 - Fatal编程技术网

C# 与在SQL Server中搜索数据相关的问题

C# 与在SQL Server中搜索数据相关的问题,c#,sql-server,sql-server-2005,C#,Sql Server,Sql Server 2005,我有一个SQL datatable StudetnMaster,它有名字nvarchar(100),并且包含古吉拉特语(Unicode字符)的数据输入 示例: StudentId FirstName 1 ઘનશ્યામ 2 જીગર 现在我有以下要搜索的查询: Select * from StudetnMaster where FirstName like N'" + textBox1.Text.Trim() +

我有一个SQL datatable StudetnMaster,它有
名字nvarchar(100)
,并且包含古吉拉特语(Unicode字符)的数据输入

示例:

   StudentId   FirstName
     1           ઘનશ્યામ
     2           જીગર   
现在我有以下要搜索的查询:

Select * 
from StudetnMaster 
where FirstName like N'" + textBox1.Text.Trim() + "%' 
它工作正常,但在存储过程中,我必须为
FirstName
传递参数,如下所示:

ALTER PROCEDURE dbo.StoredProcedure1
        @FirstName nvarchar(100)
AS
    select * 
    from StudentNew 
    where FirstName like N@FirstName+'%' 
但它抛出了一个错误,即:

无效的列名N@FirstName

我如何在SP中为参数使用
'N'
,因为不使用
N'
Unicode文本无法搜索

对于上面提到的内联查询,我得到了结果,但对于存储过程,我得到了错误,所以我们如何在SP中使用
'N'

在SP中搜索unicode字符还有其他解决方案吗


谢谢

就像在注释中写的一样-您不必在参数中添加N

当您将参数定义为nvarchar时,它意味着每个符号-2字节(当您写入N'string'时,N代表什么)

如有必要,您可以在此处添加排序规则:

select * from StudentNew
where FirstName like @FirstName+'%' Collate YourCollationName

无需添加
N
。只需尝试从StudentNew中选择*from FirstName,比如@FirstName+'%'