[英]Send Unicode String From C# To SQL Server 2008 DB
我想将一些unicode字符串(例如“ش”)发送到我的SQL数据库存储过程。 我的代码是:
SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=Khane;Integrated Security=True");
SqlCommand command = new SqlCommand();
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = s;
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
Common.CommonPersonSerchResult res = new Common.CommonPersonSerchResult();
res.ID = (int)reader.GetValue(0);
res.FirstName = reader.GetValue(1).ToString();
res.LastName = reader.GetValue(2).ToString();
res.FatherName = reader.GetValue(3).ToString();
res.NationalCode = (int)reader.GetValue(4);
res.ShenasnameCode = (int)reader.GetValue(5);
res.BirthDate = reader.GetValue(6).ToString();
res.State = reader.GetValue(7).ToString();
res.City = reader.GetValue(8).ToString();
res.PostalCode = (int)reader.GetValue(10);
res.SportType = reader.GetValue(11).ToString();
res.SportStyle = reader.GetValue(12).ToString();
res.RegisterType = reader.GetValue(13).ToString();
res.Ghahremani = reader.GetValue(14).ToString();
SerchResult.Add(res);
}
connection.Close();
但我看不到任何结果,但我知道有一些行可以显示
这是我的存储过程:
USE [Khane]
GO
/****** Object: StoredProcedure [dbo].[QuickSerch] Script Date: 10/19/2011 18:31:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[QuickSerch]
@item nvarchar(300)
AS
BEGIN
select * from PersonsDataTbl
where
Name like '%@item%' or
LastName like '%@item%' or
FatherName like '%@item%' or
NationalCode like '%@item%' or
ShenasnameCode like '%@item%' or
BirthDate like '%@item%' or
State like '%@item%' or
City like '%@item%' or
Address like '%@item%' or
PostalCode like '%@item%' or
SportType like '%@item%' or
SportStyle like '%@item%' or
RegisterType like '%@item%' or
Ghahremani like '%@item%'
END
您的存储过程代码应为:
LIKE '%' + @item + '%'
否则,您正在查找包含文字字符串“@item”的值。
另外,请注意,如果表中包含大量行,则代码可能无法很好地执行。 在OR
语句和前导通配符之间,它将无法使用任何索引。 您可能希望查看全文搜索。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.