تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة فى اجراء مخزن - عند البحث بنص
#1
السلام عليكم 

لدي كود اجراء  مخزن عبارة عن البحث برقم الصنف او الكود او الاسم :
الكود يعمل  عند البحث بالرقم  او كود الصنف 
لكن عند البحث بالاسم  يظهر خطاء بسبب نوع الحقل 

لكن لم اتمكن من معالجة الخطاء
صورة الخطاء
   

مرفق   البرنامج  كود الاجراء المخزن+  سكربت الجدول + سكربت الاجراء المخزن


.zip   SearchItems2.zip (الحجم : 764 بايت / التحميلات : 16)


الملفات المرفقة
.zip   Get_Items.zip (الحجم : 75.01 ك ب / التحميلات : 22)
الرد }}}
تم الشكر بواسطة:
#2
(07-05-23, 12:08 AM)new_programer كتب : السلام عليكم 

لدي كود اجراء  مخزن عبارة عن البحث برقم الصنف او الكود او الاسم :
الكود يعمل  عند البحث بالرقم  او كود الصنف 
لكن عند البحث بالاسم  يظهر خطاء بسبب نوع الحقل 

لكن لم اتمكن من معالجة الخطاء
صورة الخطاء


مرفق   البرنامج  كود الاجراء المخزن+  سكربت الجدول + سكربت الاجراء المخزن

PHP كود :
ALTER PROCEDURE [dbo].[SearchItems2]
@
itemName varchar(100)=null
as
begin
if ISNUMERIC (@itemName )=0
begin
declare @SearchName Varchar(100)
set @SearchName=N'%' +@itemName +'%'
select itemCode,UintID,itemName from dbo.itemsTbl  where itemName like @SearchName /* or itemCode=@itemName */
end
else
begin
     
declare @barcode bigint
     set 
@barcode =CAST(@itemName as bigint)
 
    select itemCode,UintID,itemName from dbo.itemsTbl  where UintID=@barcode or itemCode=@itemName

end 
end 
الرد }}}
تم الشكر بواسطة: new_programer
#3
(07-05-23, 06:42 AM)ramy alfoly كتب :
(07-05-23, 12:08 AM)new_programer كتب : السلام عليكم 

لدي كود اجراء  مخزن عبارة عن البحث برقم الصنف او الكود او الاسم :
الكود يعمل  عند البحث بالرقم  او كود الصنف 
لكن عند البحث بالاسم  يظهر خطاء بسبب نوع الحقل 

لكن لم اتمكن من معالجة الخطاء
صورة الخطاء


مرفق   البرنامج  كود الاجراء المخزن+  سكربت الجدول + سكربت الاجراء المخزن

PHP كود :
ALTER PROCEDURE [dbo].[SearchItems2]
@
itemName varchar(100)=null
as
begin
if ISNUMERIC (@itemName )=0
begin
declare @SearchName Varchar(100)
set @SearchName=N'%' +@itemName +'%'
select itemCode,UintID,itemName from dbo.itemsTbl  where itemName like @SearchName /* or itemCode=@itemName */
end
else
begin
     
declare @barcode bigint
     set 
@barcode =CAST(@itemName as bigint)
 
    select itemCode,UintID,itemName from dbo.itemsTbl  where UintID=@barcode or itemCode=@itemName

end 
end 

شكرا  جدا  جدا  .

تم التعديل والكود يعمل بنجاح

شكرا  ليك ربنا يجعلة فى ميزان حسناتك ويذيدك من علمه .
اشكرك جدا على المساعدة
الرد }}}
تم الشكر بواسطة:
#4
PHP كود :
ALTER PROCEDURE [dbo].[SearchItems2]
@
itemName varchar(100)=null
as
begin
declare @SearchName Varchar(100)
set @SearchName=N'%' +@itemName +'%'
select itemCode,UintID,itemName from dbo.itemsTbl  where itemName like @SearchName or itemCode like @SearchName
end 
الرد }}}
تم الشكر بواسطة: new_programer
#5
تمام تسلم

ربنا يكرمك ويزيدك من علمة

شكرا جدا جدا

ممكن استفسار اخر .
ممكن اعرف اى كود هيكون اسرع مع البيانات الكبيرة
الرد }}}
تم الشكر بواسطة:
#6
(07-05-23, 10:26 PM)new_programer كتب : تمام تسلم  

ربنا يكرمك ويزيدك من علمة

شكرا جدا جدا

ممكن استفسار اخر  .
ممكن اعرف  اى كود هيكون اسرع مع البيانات الكبيرة

الافضل ان تجعل البحث يبدأ عند إدخال 3 أحرف فأكثر (سواء حرف أو رقم) بحيث تقلص النتائج لدرجة معقولة وتتجنب قدر الإمكان كثرة النتائج التي تسبب بثقل الداتاجريد 
مثل وضع هذا الكود في بداية searchItems
PHP كود :
If txt.Text.Trim.Length 3 Then
    dvg
.DataSource Nothing
    Exit Sub
End 
If 
كلما كان شرط عدد الأحرف أكبر لبدء البحث كانت النتائج خفيفة على الداتاجريد مثلا تجعلها 5 أو أكثر حسب ما تراه مناسب
الرد }}}
تم الشكر بواسطة: new_programer
#7
(07-05-23, 12:08 AM)new_programer كتب : السلام عليكم 

لدي كود اجراء  مخزن عبارة عن البحث برقم الصنف او الكود او الاسم :
الكود يعمل  عند البحث بالرقم  او كود الصنف 
لكن عند البحث بالاسم  يظهر خطاء بسبب نوع الحقل 

لكن لم اتمكن من معالجة الخطاء
صورة الخطاء


مرفق   البرنامج  كود الاجراء المخزن+  سكربت الجدول + سكربت الاجراء المخزن
أخي قبل أن تتعلم البرمجة يجب عليك أن تتعلم لغتك الجميلة 
الخطاء -------> الخطأ


    Heart ربي زدني علما  Heart

الرد }}}
تم الشكر بواسطة: new_programer



التنقل السريع :


يقوم بقرائة الموضوع: