C# 与在SQL Server中搜索数据相关的问题
我有一个SQL datatable StudetnMaster,它有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() +
名字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+'%'