01/10/2018, 10:15
Cách truyền tham số có kí tự unicode vào store procedure trong sql
Mình có 1 store như sau
ALTER PROC [dbo].[Products_Search_1]
@BranchName nvarchar(50),
@CaterogyName nvarchar(50),
@ProductName nvarchar(100)
AS
BEGIN
SELECT *
FROM Products P
INNER JOIN Categories C
ON P.CategoryId = C.CategoryId
INNER JOIN Branchs B
ON P.BranchId = B.BranchId
WHERE (B.BranchName = @BranchName OR @BranchName =')
AND (C.CategoryName = @CaterogyName OR @CaterogyName =')
AND P.ProductName LIKE '%' + RTRIM(@ProductName) +'%'
END
Khi mình thưc thi store
Products_Search_1 'Bến tre', ' ,'
Thì nó không ra kết quả bởi vì giá trị biến @BranchName sai
print (@BranchName)
thì nó ra là B?n tre
Làm thế nào để khắc phục vấn đề này vậy mọi người
Bài liên quan
Chào bạn @huyenthoai. Để hiển thị được kiểu
NVARCHAR
trong SQL thì bạn chỉ cần thêm N vào trước nhé. Ví dụN'Bến Tre'
store mình vậy đó.
Bạn chỉ mình cách thêm sao vs???
Mình vẫn chưa hiểu rõ yêu cầu thêm của bạn là gì ???
à quên nói với bạn là mình dùng LINQ to SQL để gọi store
Còn nếu thực thi ở SQL thì dễ rồi
Bây giờ bạn muốn sử dụng Store Procedure mà bạn viết thông qua LINQ TO SQL trong C# ???
viết store trong SQL
gọi store thì dùng LINQ to SQL C#
Bạn có thể tạo file .dbml sau đó chỉ cần kéo thả Stored Procedures vào file .dbml là có thể sử dụng được nhé.
Ví dụ :
[NameFile]DataContext db = new [NameFile]DataContext()
db.[Name Stored Procedures](parameter_1,parameter_2,...,parameter_n)
.Chi tiết hơn bạn có thể xem hướng dẫn tại đây : https://weblogs.asp.net/scottgu/linq-to-sql-part-6-retrieving-data-using-stored-procedures