در قسمت Sp_UserLeaveReprt دستور زیر رو نوشتم
ALTER Procedure Sp_UserLeaveReprt
@FromDate datetime,
@ToDate Datetime,
@userid varchar(max),
@LeaveType int
As
Begin
if (@LeaveType = -1)
Begin
select
LeaveType,
(Case When LeaveType = 1 Then 'ساعتی' When LeaveType = 2 Then 'استحقاقی' When LeaveType = 3 Then 'استعلاجی' When LeaveType = 4 Then 'بدون حقوق' Else '' End) As LeaveTypeDesc
from Leave_Tbl
where UserID_Request = @userid
And ((FromDate_Day >= @FromDate And ToDate_Day <= @ToDate)
Or
(FromTime_Saati >= @FromDate And FromTime_Saati <=@ToDate))
End
else
Begin
select
LeaveType,
(Case When LeaveType = 1 Then 'ساعتی' When LeaveType = 2 Then 'استحقاقی' When LeaveType = 3 Then 'استعلاجی' When LeaveType = 4 Then 'بدون حقوق' Else '' End) As LeaveTypeDesc
from Leave_Tbl
where UserID_Request = @userid
And LeaveType = @LeaveType
And ((FromDate_Day >= @FromDate And ToDate_Day <= @ToDate)
Or
(FromTime_Saati >= @FromDate And FromTime_Saati <=@ToDate))
End
End
و بعداز اینکه در اسکیوال سرور درخواست اطلاعات کردم فارسی نمایش نداد و به جاش کارکتر فارسی علامت؟ ظاهر شد
اگر در دیتابیس DataType رو به صورت nvarchar تعریف کردید نباید مشکلی باشه. احتمالا توی کوئری که دارید یک تبدیل نوع داره انجام میشه. بهتره قبل از حروف فارسی از N استفاده کنید تا به نوع nvarchar تبدیل بشه. کوئری شما به شکل زیر تبدیل میشه :
ALTER Procedure Sp_UserLeaveReprt
@FromDate datetime,
@ToDate Datetime,
@userid varchar(max),
@LeaveType int
As
Begin
if (@LeaveType = -1)
Begin
select
LeaveType,
(Case When LeaveType = 1 Then N'ساعتی' When LeaveType = 2 Then N'استحقاقی' When LeaveType = 3 Then N'استعلاجی' When LeaveType = 4 Then N'بدون حقوق' Else '' End) As LeaveTypeDesc
from Leave_Tbl
where UserID_Request = @userid
And ((FromDate_Day >= @FromDate And ToDate_Day <= @ToDate)
Or
(FromTime_Saati >= @FromDate And FromTime_Saati <=@ToDate))
End
else
Begin
select
LeaveType,
(Case When LeaveType = 1 Then N'ساعتی' When LeaveType = 2 Then N'استحقاقی' When LeaveType = 3 Then N'استعلاجی' When LeaveType = 4 Then N'بدون حقوق' Else '' End) As LeaveTypeDesc
from Leave_Tbl
where UserID_Request = @userid
And LeaveType = @LeaveType
And ((FromDate_Day >= @FromDate And ToDate_Day <= @ToDate)
Or
(FromTime_Saati >= @FromDate And FromTime_Saati <=@ToDate))
End
End
وقتی از N قبل از حروف فارسی یا عربی استفاده می کنید اگر DataType از نوع varchar یا char باشه تبدیل به nvarchar یا nchar میشه.
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1400/08/02
- ساعت :
02:35:00 PM
- بازدید :
2563
- پاسخ :
1
|
تاریخ :
1403/01/15
- ساعت :
04:12:00 PM
- بازدید :
800
- پاسخ :
2
|
تاریخ :
1402/10/18
- ساعت :
10:45:00 PM
- بازدید :
706
- پاسخ :
2
|
تاریخ :
1402/08/18
- ساعت :
08:43:00 AM
- بازدید :
1318
- پاسخ :
0
|
تاریخ :
1402/08/16
- ساعت :
09:45:00 PM
- بازدید :
1039
- پاسخ :
1
|
تاریخ :
1402/06/27
- ساعت :
12:27:00 PM
- بازدید :
1461
- پاسخ :
2
|
تاریخ :
1402/06/25
- ساعت :
11:37:00 AM
- بازدید :
1042
- پاسخ :
1
|
تاریخ :
1402/06/18
- ساعت :
10:36:00 AM
- بازدید :
1753
- پاسخ :
2
|
تاریخ :
1399/06/01
- ساعت :
10:58:00 PM
- بازدید :
7555
- پاسخ :
1
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2013
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
78
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1034
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
430
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
931
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4800
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1161
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
599
- پاسخ :
1
|