PDA

View Full Version : سوال: فیلتر RadGridView



notlikeothers
شنبه 25 شهریور 1396, 09:33 صبح
درود دوستان.
یه radgridviewدارم که بایند شده و اطلاعات رو نمایش میده و از فیلتر خودش استفاده میکنم.ولی موقع فیلتر اطلاعات واسه حرف های ی - ک مشکل داره و نمیاره
نکته اینکه اطلاعات به صورت صحیح در دیتابیس ثبت شده و ی ک صحیح ثبت شده

رامین مرادی
شنبه 25 شهریور 1396, 13:31 عصر
منم با این دردسر روبرو شدم. مشکل اینه که شما موقع ذخیره تو بانک اینمدلی ذخیره کن N'علی' یا اینکه کولیشن جدولتون رو بزارید رو حالت پرشین

در ضمن باید تو دیتا بیستون همه حروف عربی رو به فارسی تبدیل کنید. که البته اسکریپتشو دارم اگه خواستید اینجا میزارم استفاده کنید.

notlikeothers
شنبه 25 شهریور 1396, 14:11 عصر
منم با این دردسر روبرو شدم. مشکل اینه که شما موقع ذخیره تو بانک اینمدلی ذخیره کن N'علی' یا اینکه کولیشن جدولتون رو بزارید رو حالت پرشین

در ضمن باید تو دیتا بیستون همه حروف عربی رو به فارسی تبدیل کنید. که البته اسکریپتشو دارم اگه خواستید اینجا میزارم استفاده کنید.
ممنون
من دیتای دیتابیسم درسته مشکل از خوده radgridview فک کنم که داره اشتباه پارامتر میگیره
چرا اینو میگم ؟واسه اینکه من تو فیلتر خودم این مشکل رو داشتم و اصلاح کردم دیگه این مشکل رو ندارم

رامین مرادی
یک شنبه 26 شهریور 1396, 08:24 صبح
میتونید یه قسمت از اطلاعات دیتابیس و اون کوئری که رو دیتابیس برای نمایش استفاده کردید رو اینجا بزارید؟(چندتا احتمال وجود داره. یا داده های دیتابیس درست نیستن . یا صفحه کلید خودتون درست نیست.یا واقعا دیتا گرید تلریک مشکل داره که اونم بعیده چون خودم دارم ازش استفاده میکنم)

notlikeothers
یک شنبه 26 شهریور 1396, 21:51 عصر
میتونید یه قسمت از اطلاعات دیتابیس و اون کوئری که رو دیتابیس برای نمایش استفاده کردید رو اینجا بزارید؟(چندتا احتمال وجود داره. یا داده های دیتابیس درست نیستن . یا صفحه کلید خودتون درست نیست.یا واقعا دیتا گرید تلریک مشکل داره که اونم بعیده چون خودم دارم ازش استفاده میکنم)

ALTER PROC [dbo].[TenderEvaluation_SerachProject]
@ProjectName NVARCHAR(4000) ,
@TenderCode NVARCHAR(2000) ,
@Employer_Name NVARCHAR(4000) ,
@Consultant_Name NVARCHAR(4000) ,
@Project_Location NVARCHAR(4000) ,
@Tender_ImportantTimeID INT

AS
BEGIN
SELECT TotalProjectInformation.ID ,
TotalProjectInformation.ProjectName ,
TotalProjectInformation.Employer_Name ,
TotalProjectInformation.Project_Location ,
TotalProjectInformation.Employer_InitialEstimation Price ,
TenderImportantTime.Tender_ImportantTime_Date
FROM TenderEvaluation_TotalProjectInformation AS TotalProjectInformation
INNER JOIN TenderEvaluation_TotalProjectInformation_TenderImp ortantTime
AS TenderImportantTime ON TenderImportantTime.TenderEvaluation_TotalProjectI nformation_ID = TotalProjectInformation.ID
WHERE TenderImportantTime.Tender_ImportantTimeID = @Tender_ImportantTimeID

AND ( ISNULL(@ProjectName, '') = ''
OR CAST(ProjectName AS NVARCHAR) LIKE '%' + @ProjectName
+ '%'
)
AND ( ISNULL(@TenderCode, '') = ''
OR CAST(TenderCode AS NVARCHAR) LIKE '%' + @TenderCode
+ '%'
)
AND ( ISNULL(@Employer_Name, '') = ''
OR CAST(Employer_Name AS NVARCHAR) LIKE '%'
+ @Employer_Name + '%'
)
AND ( ISNULL(@Consultant_Name, '') = ''
OR CAST(Consultant_Name AS NVARCHAR) LIKE '%'
+ @Consultant_Name + '%'
)
AND ( ISNULL(@Project_Location, '') = ''
OR CAST(Project_Location AS NVARCHAR) LIKE '%'
+ @Project_Location + '%'
);

END;

این کوئری دیتابیس که درست کار میکنه
و این عنوان یکی از فیلدهام که سرچ میکنم تو radGrid نمیاره دقیقا کپی پیست میکنم
شيراز

Mahmoud.Afrad
یک شنبه 26 شهریور 1396, 23:44 عصر
این کلمه "شيراز" که نوشتید دارای 'ي' عربی هست. باید متن وارد شده توسط کاربر را چه در زمان درج در دیتابیس چه زمان جستجو و چه در زمان فیلتر یکسان سازی کنید.

رامین مرادی
دوشنبه 27 شهریور 1396, 09:22 صبح
استفاده از حرف N قبل از متغییر تو کلمات فارسی . من خودم همیشه عادت دارم استفاده کنم. هم تو ثبت هم آپدیت هم جستجو. به احتمال زیاد مقادیر دداخل دیتابیستون با حروف عربی نوشته شده. شما باید مقادیر داخل جدول رو اصلاح کنید.

notlikeothers
دوشنبه 27 شهریور 1396, 10:33 صبح
این کلمه "شيراز" که نوشتید دارای 'ي' عربی هست. باید متن وارد شده توسط کاربر را چه در زمان درج در دیتابیس چه زمان جستجو و چه در زمان فیلتر یکسان سازی کنید.

public string SafeFarsiStr(string input)
{
return input.Replace("ی", "ی").Replace("ک", "ک");
}



من موقع ثبت ازین فانکشن استفاده میکنم قاعدتا نباید مشکلی باشه.بعدش من از این کوئری زیر هم حتی بعد از ثبت هم اجرا کردم بازم مشکل داشت..
شما مطمئنی فیلتر radgridview با این داستان مشکلی نداره؟؟

USE TestDb;


DECLARE @Table NVARCHAR(MAX),
@Col NVARCHAR(MAX)


DECLARE Table_Cursor CURSOR
FOR
--پیدا کردن تمام فیلدهای متنی تمام جداول دیتابیس جاری
SELECT a.name, --table
b.name --col
FROM sysobjects a,
syscolumns b
WHERE a.id = b.id
AND a.xtype = 'u' --User table
AND (
b.xtype = 99 --ntext
OR b.xtype = 35 -- text
OR b.xtype = 231 --nvarchar
OR b.xtype = 167 --varchar
OR b.xtype = 175 --char
OR b.xtype = 239 --nchar
)


OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @Table,@Col
WHILE (@@FETCH_STATUS = 0)
BEGIN
EXEC (
'update [' + @Table + '] set [' + @Col +
']= REPLACE(REPLACE(CAST([' + @Col +
'] as nvarchar(max)) , NCHAR(1740), NCHAR(1610)),NCHAR(1705),NCHAR(1603)) '
)


FETCH NEXT FROM Table_Cursor INTO @Table,@Col
END CLOSE Table_Cursor DEALLOCATE Table_Cursor

notlikeothers
دوشنبه 27 شهریور 1396, 10:38 صبح
استفاده از حرف N قبل از متغییر تو کلمات فارسی . من خودم همیشه عادت دارم استفاده کنم. هم تو ثبت هم آپدیت هم جستجو. به احتمال زیاد مقادیر دداخل دیتابیستون با حروف عربی نوشته شده. شما باید مقادیر داخل جدول رو اصلاح کنید.
من از ef واسه orm استفاده کردم واسه ثبت باید کجاش دقیقا n بندازم؟؟چون sp واسه ثبت ندارم

Mahmoud.Afrad
دوشنبه 27 شهریور 1396, 18:43 عصر
اگر میتونید یک نمونه پروژه که همین مشکل رو داره بزارید. یا اینکه کد درج و آپدیت رو بزارید.
اون کوئری هم برای زمانی هست که اطلاعاتی در دیتابیس دارید میخواهید به کاراکترهای فارسی تغییر بدید و توصیه نمیکنم همیشه بعد از هر ثبت و آپدیت اجرا کنید.