نمایش نتایج 1 تا 15 از 15

نام تاپیک: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

  1. #1

    پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    سلام دوستان
    من یک پروسچر به صورت زیر دارم که یه شناسه قبض میگیره و در خروجی شناسه پرداخت و مبلغ را پس میده.

    create or Replace PROCEDURE ussd_100(INSHENASEHG IN VARCHAR2,
    outSHENASEHP out varchar2,
    outamt out number)
    IS
    Begin

    Select a_SHENASEHP,nvl(a_amtkol,0)-nvl(a_cred,0) InTo outSHENASEHP,outamt From A_ghabz

    Where A_SHENASEHG=INSHENASEHG AND A_YEAR=95 AND A_ghabz=1;
    End ;
    /
    Commit;
    Show Errors;



    حالا اومدم این پروسچر رو در اکشن زیر فراخوانی کردم:

    public ActionResult SearchEshtrak(string A_SHENASEHG)
    {

    return db.USSD_100(A_SHENASEHG).ToString();


    }




    که خطای زیر رو میده
    No overload for method 'USSD_100' takes 1 arguments

    دوستان کسی چاره کار رو میدونه؟؟ با تشکر

  2. #2

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    از اساتید عزیز خواهش میکنم راهنمایی بفرمایند... این یک فراخونی تابع است چون این حقیر بار اولمه که دارم تحت وب برنامه مینویسم در این مرحله گیر کردم ولی مطمئنا برای دوستان باتجربه نباید زیاد سخت باشه...

  3. #3

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    برای استفاده از SP در Entity Framework به این شکل عمل کنید : https://stackoverflow.com/a/39063015
    وقتی خود EF هست لازم نیست دستوراتون رو با SP بنویسید ، بهتره از خود متد های Dbset و DbContext استفاده کنید .

  4. #4

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    نقل قول نوشته شده توسط Moien Tajik مشاهده تاپیک
    برای استفاده از SP در Entity Framework به این شکل عمل کنید : https://stackoverflow.com/a/39063015
    وقتی خود EF هست لازم نیست دستوراتون رو با SP بنویسید ، بهتره از خود متد های Dbset و DbContext استفاده کنید .

    دوست عزیز مدل ارتباط من با دیتابیس اوراکل کدفرست نیست و من از طریق گزینه EF Designer from database به پایگاه داده کانکت شدم و جداول موردنیازمو اضافه کردم.با این تفاسیر آیا بنده نیز باید از متدهای Dbset و DbContext استفاده کنم؟؟
    حال اگر مشکلی که در فراخوانی پروسچر USSD_100 دارم برطرف بشه سریعتر به نتیجه برسم !؟

  5. #5

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    دوستان من اکشن رو بصورت زیر تغییر دادم و ظاهرا پیغام خطای مربوط به فراخوانی پروسچر از بین رفت:


    public ActionResult SearchEshtrak(string A_SHENASEHG,ObjectParameter oUTSHENASEHP,ObjectParameter oUTAMT)
    {


    return View("SearchEshtrak", db.USSD_100(A_SHENASEHG, oUTSHENASEHP, oUTAMT));
    }



    اما مشکل جدیدی که بوجود اومده اینه که اکشن من از کار افتاده و یک دکمه submit دارم که بعد از فشردنش اصلا هیچ کاری نمیکنه و وارد اکشن فوق نمیشه در حالی که اگه این دوتا پارامتر ObjectParameter oUTSHENASEHP,ObjectParameter oUTAMT را حذف کنم دوباره اکشن کار میکنه.... نمیدونم چرا؟

  6. #6

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    جواب دادن به سوال شما مشکل هست چون Type پارامترهاتون معلوم نیست دقیق چی هستن و از کجا میان و همچنین تعداد آموزش هایی که از Oracle تو mvc استفاده میکنن کم هست و به همین خاطر Reference های زیادی نداره .

    برای مشکلتون که میگید بعد از زدن submit وارد اکشن نمیشه ، چک کنید که همه ی پارامتر های ورودی اکشن رو بدرستی پاس میدید ، همچنین در ابتدای اکشن Breakpoint بزارید چک کنید مقدار های دریافت شده رو .

  7. #7

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    نقل قول نوشته شده توسط Moien Tajik مشاهده تاپیک
    جواب دادن به سوال شما مشکل هست چون Type پارامترهاتون معلوم نیست دقیق چی هستن و از کجا میان و همچنین تعداد آموزش هایی که از Oracle تو mvc استفاده میکنن کم هست و به همین خاطر Reference های زیادی نداره .

    برای مشکلتون که میگید بعد از زدن submit وارد اکشن نمیشه ، چک کنید که همه ی پارامتر های ورودی اکشن رو بدرستی پاس میدید ، همچنین در ابتدای اکشن Breakpoint بزارید چک کنید مقدار های دریافت شده رو .

    سلام
    من در اصل به یک مقدار ورودی در این اکشن نیاز دارم که از نوع string هستش. دو نوع داده دیگر که از نوع objectparameter هستند و در اصل خروجی های پروسچرند ، صرفا بخاطر اینکه پیغام خطای پروسچر ussd_100 از بین بره اونجا اضافه کردم(حالا غلط یا درستشو نمیدونم، چون اگه نباشه پیغام خطای آرگومان میده) و اکسن فعلی من اینه:

    public ActionResult SearchEshtrak(string iNSHENASEHG, ObjectParameter oUTSHENASEHP, ObjectParameter oUTAMT)
    {

    return View("SearchEshtrak", db.USSD_100(iNSHENASEHG,oUTSHENASEHP,oUTAMT));

    }


    حالا کدهای ویو ایندکس من که با زدن دکمه submit قراره یه مقدار استرینگ(شناسه) رو پاس بدن به ویو سرچ اشتراک بصورت زیره: ولی مشکل اینه با دو پارامتری که از نوع objectparameter هستن اضافه کردم دیگه وارد ویو سرچ اشتراک نمیشه....



    @using (Ajax.BeginForm("SearchEshtrak", "Home", new AjaxOptions { UpdateTargetId = "divAjax", HttpMethod = "Post", InsertionMode = InsertionMode.Replace, Url = "/Home/SearchEshtrak" }))
    {


    <html>
    <head>

    <title>search eshtrak </title>
    </head>

    <body>
    <br />
    <br />
    <br />
    <br />

    <div>
    شناسه قبض : <input type="text" name="A_SHENASEHG" />
    </div>

    <div>
    <input type="submit" name="searchkey" value="جستجو" />

    </div>

    </body>

    </html>


    <div id="divAjax"> </div>


    @section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
    }

    }


    چرا ؟؟ نمیدونم؟؟؟!!

  8. #8

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

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


    public string GetSearchEshtrak(string A_SHENASEHG)
    {


    var sample1 = new ObjectParameter("oUTSHENASEHP", typeof(string));
    var sample2 = new ObjectParameter("oUTAMT", typeof(int));
    var model2 = db.USSD_100(A_SHENASEHG, sample1, sample2).ToString();


    return (sample1).ToString();


    }



    فراخوانی تابع بالا مشکلی نداره و هنگام trace کردن دو تا خروجی برمیگردونه که قابل مشاهده ست...
    فقط مشکلی که باقی مونده چون این کار برای وب سرویس (web Api) داره انجام میشه و خروجی بصورت xml باید مثلا در کروم یا فایرفکس دیده بشه وقتی مثلا sample1 ریترن میشه در خروجی مرورگر پیغام زیر میاد:


    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">System.Data.Entity.Core.Objects.ObjectParame ter</string>


    در حالی باید مثلا عددی مثل 101050199 بعنوان خروجی وب سرویس باشد....
    حال برای اینکه بتونم خروجی وب سرویس بالا رو بصورت صحیح ریترن کنم چجوری باید کد زد؟ ممنون

  9. #9

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    باز هم میگم Type اون model2 معلوم نیست چی هست و چه Property هایی داره که بشه درست راهنمایی کرد .

    این رو امتحان کنید برای return :
    return Ok(model2);

  10. #10

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    نقل قول نوشته شده توسط Moien Tajik مشاهده تاپیک
    باز هم میگم Type اون model2 معلوم نیست چی هست و چه Property هایی داره که بشه درست راهنمایی کرد .

    این رو امتحان کنید برای return :
    return Ok(model2);
    سلام.مهندس model2 اینجا هیچ نقشی نداره و خروجی های ما sample1 و sample2 هستند(که دو آیتم عددی هستند). اصلا برای اینکه موضوع شفاف تر بشه کد رو بصورت زیر اصلاح میکنم:


    public string GetSearchEshtrak(string A_SHENASEHG)
    {


    var sample1 = new ObjectParameter("oUTSHENASEHP", typeof(string));
    var sample2 = new ObjectParameter("oUTAMT", typeof(int));

    return (db.USSD_100(A_SHENASEHG, sample1, sample2).ToString());


    }


    خروجی مرورگر الان این پیام میاد:

    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">-1</string>


    پیشنهاد شما رو یعنی return ok رو هم تست کردم از کلمه ok ایراد میگیره.
    The name 'ok' does not exist in the current context

    ممنون بابت وقتی که میگذارید. با این تفاسیر پیشنهاد شما برای نحوه نوشتن return که بتونه دو تا خروجی پروسچر رو در مرورگر نمایش بده چی هستش؟

  11. #11

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    پیشنهاد شما رو یعنی return ok رو هم تست کردم از کلمه ok ایراد میگیره.

    اون Ok حالت Case Sensitive داره و O باید Capital باشه .

    جنس خروجی های کوئریتون چی هستش ؟ int هست یا string ؟ باید معلوم بشه که چه خروجیی دارید میگیرید که بشه راهنمایی درست کرد !

    میتونید یک مدل بسازید ، 1 Property داشته باشه که بعد از پیدا کردن نتیجه کوئری ها ، اون ها رو داخل Model بریزید و اون مدل رو برگردونید .


    public class YourModel
    {
    public string result { get; set; }
    }


    public ActionResult YourAction(string A_SHENASEHG)
    {
    var sample1 = new ObjectParameter("oUTSHENASEHP", typeof(string));
    var sample2 = new ObjectParameter("oUTAMT", typeof(int));
    var res = db.USSD_100(A_SHENASEHG, sample1, sample2).ToString();

    var yourModel = new YourModel
    {
    result = res
    };

    return Ok(yourModel);
    }


    آخرین ویرایش به وسیله Moien Tajik : دوشنبه 27 شهریور 1396 در 10:46 صبح

  12. #12

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    مهندس من طبق فرمایش شما یک کلاس تعریف کردم و مجددا برنامه رو اجرا کردم ولی متاسفانه بازم خروجی نداشت.در تصویر زیر من برنامه رو trace کردم مشکل از اونجایی شروع میشه که بعد از فراخوانی پروسیچر مقداری که داخل متغیر res ریخته میشه (1-) هست در حالی که جواب دو مقدار عددیه(sample1وsample2) که میتونه بصورت string بازگشت داده بشه.اون کلمه Ok هم با حرف بزرگ نوشتم ولی بازم همون خطای قبل رو میداد. تصویر رو ملاحظه بفرمایید:

    error.jpg


    و خروجی که در مرورگر میاد :


    output.jpg


    ؟؟؟ نمیدونم چرا اینجوری نمایش میده ؟؟!!

  13. #13

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    با تشکر از راهنمایی های جناب Moien Tajik پاسخ صحیح بدین صورت است:

    public string GetSearchEshtrak(string A_SHENASEHG)
    {


    var sample1 = new ObjectParameter("oUTSHENASEHP", typeof(string));
    var sample2 = new ObjectParameter("oUTAMT", typeof(int));


    var res = db.USSD_100(A_SHENASEHG, sample1, sample2).ToString();
    output1.sample1 = sample1;
    output1.sample2 = sample2;

    return ("شناسه پرداخت :"+output1.sample1.Value +"///////" +" مبلغ :" + output1.sample2.Value.ToString());


    }



    اینم از کلاس


    public class Sp_Result
    {

    public ObjectParameter sample1 { get; set; }


    public ObjectParameter sample2 { get; set; }


    }


  14. #14

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments

    خطای Error 1 No overload for method 'UpdateQuery' takes 2 arguments
    رو من چجوری از بین ببرم و حل کنم ؟

  15. #15

    نقل قول: پیغام خطای No overload for method 'USSD_100' takes 1 arguments


تاپیک های مشابه

  1. Error 1 No overload for method 'DateShamsi' takes 0 arguments
    نوشته شده توسط azitaj در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 23 اردیبهشت 1396, 12:24 عصر
  2. خطای No overload for method 'AddTable1Row' takes 3 arguments
    نوشته شده توسط samiasoft در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 04 مهر 1394, 10:14 صبح
  3. پیغام خطای Login failed for user 'NT AUTHORITY\NETWORK SERVICE'
    نوشته شده توسط msgh1370 در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: دوشنبه 26 اردیبهشت 1390, 20:04 عصر
  4. سوال: خطای No Overload for Method CreateUser takes 4 auguments
    نوشته شده توسط imanasp در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: پنج شنبه 04 شهریور 1389, 04:30 صبح
  5. No overload for method اشکال در کلاس
    نوشته شده توسط am_abbas65 در بخش C#‎‎
    پاسخ: 3
    آخرین پست: شنبه 22 اردیبهشت 1386, 03:08 صبح

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •