دسته بندی ها
15:18 1400/03/12

ارسال پارمتر به استیمول سافت توسط stored procedure - خطای incorect syntax near

مشخصات سوال کننده :
کاربر : navidadelifar     امتیاز کاربر : ‎−1     رتبه کاربر : 7116
دسته بندی : Asp.net Core Sql Server استيمول سافت

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3960
1 نظر
fateme : سوال رو خوب و کامل پرسیدید. اما فرمودید اگر به صورت فاصله دار پارامتر رو ارسال کنید خطا میده. خب اون خطا چی هست ؟؟؟؟

امتیاز کاربر : 1635   رتبه کاربر : 2   تاریخ ثبت : 11:18 1400/03/12
هوش مصنوعی

پاسخ هوش مصنوعی

به نظر می رسد که خطا به دلیل وجود فاصله های نادرست یا مشکلات در نحوه ارسال پارامتر به Stored Procedure باشد. اگر وقتی نام مسیول پیگیری با فاصله باشد خطا می دهد، ممکن است نیاز باشد که پارامترهای ورودی را به دقت بررسی کنید.

شما می توانید از LTRIM و RTRIM برای حذف فاصله های اضافی در دو طرف رشته استفاده کنید، که در کد شما انجام شده است. ولی ممکن است در قسمتی که پارامتر را به استیمول سافت ارسال می کنید، مقادیر حاوی فاصله نامناسب باشند.

برای رفع ایراد، مطمین شوید که پارامتر ورودی به شکل صحیحی ارسال می شود و همچنین در استیمول سافت، قبل از ارسال پارامتر، از توابع LTRIM و RTRIM نیز استفاده کنید. در اینجا یک کد برای مثال ارایه می کنم که می توانید در قسمت ارسال پارامتر در استیمول سافت استفاده کنید:

DECLARE @TrimmedMasoulPaigiri NVARCHAR(MAX)
SET @TrimmedMasoulPaigiri = LTRIM(RTRIM(@MasoulPaigiri))

EXEC Sp_MasoulPaigiri @FromDate, @ToDate, @TrimmedMasoulPaigiri

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

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : fateme 10:56 1400/03/13

بنظرم خطای شما در بخش کوئری Sql هست. کوئری شما در بخش Where به شکل زیر هست.

where LTRIM(RTRIM(MasoulPaigiri)) = LTRIM(RTRIM(@MasoulPaigiri))

 بهتره از عملگر = برای رشته استفاده نکنید. به صورت زیر تغییر بدید :

where MasoulPaigiri Like '%' + @MasoulPaigiri + '%'

دستور بالا برای رشته بهتر جواب میده.

به این پاسخ امتیاز بدهید    0
امتیاز: 1635 رتبه: 2
3 نظر
navidadelifar : متاسفانه کد شما هم جواب نداد

امتیاز کاربر : ‎−1   رتبه کاربر : 7116   تاریخ ثبت : 11:58 1400/03/13
fateme : همون خطای قبلی رو داد ؟

امتیاز کاربر : 1635   رتبه کاربر : 2   تاریخ ثبت : 07:24 1400/03/13
navidadelifar : همون خطای قبلی رو داد

امتیاز کاربر : ‎−1   رتبه کاربر : 7116   تاریخ ثبت : 08:02 1400/03/17
ادامه نظرات ...
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود