منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة فى اجراء مخزن - عند البحث بنص
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 

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

لكن لم اتمكن من معالجة الخطاء
صورة الخطاء
[attachment=28943]

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

[attachment=28945]
(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 
(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 

شكرا  جدا  جدا  .

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

شكرا  ليك ربنا يجعلة فى ميزان حسناتك ويذيدك من علمه .
اشكرك جدا على المساعدة
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 
تمام تسلم

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

شكرا جدا جدا

ممكن استفسار اخر .
ممكن اعرف اى كود هيكون اسرع مع البيانات الكبيرة
(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 أو أكثر حسب ما تراه مناسب
(07-05-23, 12:08 AM)new_programer كتب : [ -> ]السلام عليكم 

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

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


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