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

نام تاپیک: مشکل در دریافت مقدار یک متغیر از استور پراسیجر

  1. #1
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    مشکل در دریافت مقدار یک متغیر از استور پراسیجر

    سلام و خسته نباشید

    یک استور پراسیجر دارم به شکل زیر


    USE [Anbar]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[Product_Add] (@prod_name nvarchar(50),@code nvarchar(50),@usd_cost bigint,@iqd_cost bigint,@catID int)
    AS
    BEGIN
    SET NOCOUNT ON;
    Declare @pid nvarchar(50)
    Insert into product(prod_name,code,usd_cost,iqd_cost,catId) VALUES (@prod_name,@code,@usd_cost,@iqd_cost,@catId)
    Select @pid = (Select Top 1 code From product Order by id DESC)
    return @pid
    END


    حالا به وسیله کد زیر در C#‎ اجراش می کنم و مقدار متغییر اش رو دریافت می کنم ( pid@ )


    SqlConnection cnn = new SqlConnection(db.Cnn);
    cnn.Open();
    SqlCommand cmd = cnn.CreateCommand();
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.CommandText = "Product_Add";
    cmd.Parameters.AddWithValue(@"prod_name", radTextBox2.Text);
    cmd.Parameters.AddWithValue(@"code", radTextBox1.Text);
    cmd.Parameters.AddWithValue(@"usd_cost", radCalculatorDropDown1.Value);
    cmd.Parameters.AddWithValue(@"iqd_cost", radCalculatorDropDown2.Value);
    cmd.Parameters.AddWithValue(@"catID", comboBox1.SelectedValue);
    var returnParameter = cmd.Parameters.Add("@pid", SqlDbType.NVarChar);
    returnParameter.Direction = ParameterDirection.ReturnValue;
    cmd.ExecuteNonQuery();
    PID = Convert.ToString(returnParameter.Value);
    cnn.Close();


    نوع فیلد که من میخوام مقدارش رو در متغییر pid@ بریزم NvarChar(50) هست . ولی یک اررور میده بهم

    میگه نمی تونه مقدار nvarchar رو به int تبدیل کنه .

    متن اررور :


    Conversion failed when converting the nvarchar value 'moas7' to data type int.



    به نظر شما مشکل از کجاست ؟!

  2. #2
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: مشکل در دریافت مقدار یک متغییر از استور پراسیجر

    نوع داده خروجی Stored Procedure باید از نوع Integer باشه.ظاهرا ستون code در جدول product رو از نوع nvarchar ذخیره کردین که وقتی قراره RETURN بشه با این خطا مواجه میشین.
    پ.ن: شاید بهتر باشه بجای SP از Function استفاده کنید.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: مشکل در دریافت مقدار یک متغیر از استور پراسیجر

    یعنی برای Stored Procedure نمیشه خروجی رو از نوع nVarChar استفاده کرد ؟ حتما باید Integer باشه !؟

  4. #4
    کاربر دائمی
    تاریخ عضویت
    تیر 1390
    محل زندگی
    کرمانشاه
    پست
    1,487

    نقل قول: مشکل در دریافت مقدار یک متغیر از استور پراسیجر

    Function اش رو شما میشه بنویسی ؟

    کد هاش توی سی شارپ چه طوری میشه !؟

  5. #5
    کاربر دائمی
    تاریخ عضویت
    دی 1383
    محل زندگی
    اصفهان
    پست
    1,436

    نقل قول: مشکل در دریافت مقدار یک متغیر از استور پراسیجر

    نقل قول نوشته شده توسط NasimBamdad مشاهده تاپیک
    یعنی برای Stored Procedure نمیشه خروجی رو از نوع nVarChar استفاده کرد ؟ حتما باید Integer باشه !؟
    بله این لینک MSDN از کلمه کلید RETURN هست: http://technet.microsoft.com/en-us/l...v=sql.90).aspx
    توی SQL SERVER (و احیانا سایر DBMS ها) مفهومی شبیه Stored Procedure هست به اسم FUNCTION که شما میتونی نوع خروجیش رو تعیین کنی.
    http://msdn.microsoft.com/en-us/library/ms186755.aspx البته قطعا بجز نوع خروجی، تفاوت های دیگه ای هم با Stored Procedure داره.خودتون بررسی کنید من اطلاعات کافی ندارم در این مورد.البته فکر نمیکنم در مورد فراخوانیش در #C مشکلی باشه، احیانا شبیه فراخوانی Stored Prodecure هست...

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran
    پست
    776

    نقل قول: مشکل در دریافت مقدار یک متغیر از استور پراسیجر

    سلام
    لینک زیر را ببینید . شاید کمکتون کرد :
    http://stackoverflow.com/questions/9...eturns-varchar
    در ضمن شکل صحیح تعریف و استفاده از متغیر OUTPUT را از لینک زیر مطالعه فرمایید
    http://www.sqlteam.com/article/store...returning-data
    آخرین ویرایش به وسیله aslan : چهارشنبه 28 اسفند 1392 در 18:42 عصر

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

  1. سوال: دریافت مقدار یک متغیر از javascript توسط PHP
    نوشته شده توسط مهدی اسماعیلی در بخش PHP
    پاسخ: 2
    آخرین پست: یک شنبه 17 شهریور 1392, 23:32 عصر
  2. سوال: مشکل در دریافت مقدار Decrypt شده از سرور ( WebReqest - encrypt - decrypt )
    نوشته شده توسط siavashsay در بخش VB.NET
    پاسخ: 0
    آخرین پست: شنبه 07 اردیبهشت 1392, 18:37 عصر
  3. مشکل در دریافت مقدار invoiceNumber با متد PaymentEnquiry بانک پارسیان
    نوشته شده توسط احمد سامعی در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: چهارشنبه 12 مهر 1391, 09:28 صبح
  4. سوال: مشکل در چاپ مقدار متغیر
    نوشته شده توسط saeidmscs در بخش برنامه نویسی اسمبلی خانواده x86
    پاسخ: 3
    آخرین پست: جمعه 09 مرداد 1388, 20:34 عصر
  5. سوال: مشکل در انتقال مقدار متغیر
    نوشته شده توسط baran1385 در بخش C#‎‎
    پاسخ: 7
    آخرین پست: یک شنبه 31 شهریور 1387, 04:25 صبح

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

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