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

نام تاپیک: نمایش اطلاعات Dynamic Pivot از storedprocedure داینامیک بوسیله Entity Framework

  1. #1

    نمایش اطلاعات Dynamic Pivot از storedprocedure داینامیک بوسیله Entity Framework

    سلام
    من sp زیر را نوشته ام

    ALTER proc [dbo].[aaaa]
    as
    begin
    DECLARE @Qry VARCHAR(max) = 'select Date'
    select @Qry += ', max(case when name = ''' + Name + ''' then Price end) as [' + NAME + ']'
    FROM test3
    GROUP BY Name
    SET @Qry += CHAR(13) + 'from test3' + CHAR(13) + 'group by Date'
    EXEC(@Qry)
    end

    و خروجی آن بصورت زیر است
    Untitled.png
    و دیتاگرید را بصورت زیر پر کرده ام

    private void Form1_Load(object sender, EventArgs e)
    {
    DataClasses1DataContext dc = new DataClasses1DataContext();
    var staff = dc.aaaa();
    radGridView1.DataSource = staff;
    }

    اما فقط ستون Date را فقط در دیتاگرید نمایش می دهد
    1.png
    چگونه باید کدم را بنویسم تا تمام ستونها را نمایش بدهد
    درضمن با linq می خواهم باشد
    باتشکر

  2. #2

    نقل قول: نمایش اطلاعات در datagridview از storedprocedure داینامیک

    سلام
    دوستان کسی می تواند با کد ef داده های pivot (کد sql پست 1) را در دیتاگرید نمایش بدهد

  3. #3

    نمایش اطلاعات pivot در یک datagridview به کمک Ef

    سلام
    یک sp داریم که بکمک pivot ایجاد شده است

    ALTER proc [dbo].[aaaa]
    as
    begin
    DECLARE @Qry VARCHAR(max) = 'select Date'
    select @Qry += ', max(case when name = ''' + Name + ''' then Price end) as [' + NAME + ']'
    FROM test3
    GROUP BY Name
    SET @Qry += CHAR(13) + 'from test3' + CHAR(13) + 'group by Date'
    EXEC(@Qry)
    end



    و هر بار که این sp اجرا میشود تعداد ستونهای آن می تواند متفاوت باشد
    و من این با دستور زیر و بکمک ado.net اطلاعات را می خوانم


    public DataTable ListShowAll()
    {
    SqlDataAdapter da;
    DataTable table = new DataTable();
    using (var con = new SqlConnection(Public.ConnectionString))
    using (var cmd = new SqlCommand("aaaa", con))
    using (da = new SqlDataAdapter(cmd))
    {
    cmd.Parameters.Clear();
    cmd.CommandType = CommandType.StoredProcedure;
    da.Fill(table);
    }
    return table;
    }

    حال سوال من این است این عمل را چگونه می توانم بکمک ef انجام بدهم
    باتشکر


  4. #4

    نقل قول: نمایش اطلاعات pivot در یک دیتا گرید به کمک Ef

    اگر از EF6 یا بالاتر استفاده میکنی معادل چیزی که شما با ADO.Net نوشتی توی EF میشه :

    Using(var db= new ModelName.Model_Datacontext())
    {
    var x= db.aaa();
    }


    قبل از استفاده از این کد باید مثل عکس تیک sp مورد نظر رو هم در زمان ساختن مدل بزنی تا اون رو هم ایجاد کنه.

    T_EFStProc_02_01.png

    batch-import-fg1.PNG
    دانلود حسابخانه مانی، برنامه مدیریت درآمد و هزینه رایگان

    هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
    واحد فاصله «متر» نیست، «اشتیاق» است. اگر مشتاقش باشی حتی يک قدم هم فاصله ای دور است.

    رنگ رنگی | آموزش

  5. #5

    نقل قول: نمایش اطلاعات pivot در یک دیتا گرید به کمک Ef

    نقل قول نوشته شده توسط Mani_rf مشاهده تاپیک
    اگر از EF6 یا بالاتر استفاده میکنی معادل چیزی که شما با ADO.Net نوشتی توی EF میشه :

    Using(var db= new ModelName.Model_Datacontext())
    {
    var x= db.aaa();
    }


    قبل از استفاده از این کد باید مثل عکس تیک sp مورد نظر رو هم در زمان ساختن مدل بزنی تا اون رو هم ایجاد کنه.

    T_EFStProc_02_01.png

    batch-import-fg1.PNG
    سلام
    مشکل من داینامک بودن ستونها می باشد در sp مورد نظر وبا کد بالا نمایش داده نمیشود

  6. #6

    نقل قول: نمایش اطلاعات pivot در یک دیتا گرید به کمک Ef

    من تو sp که نوشتی و همینطور توی کد ADO ، ندیدم جایی پارامتر فرستاده باشی. برای SP پارامتر تعریف کن، زمانی که از روی اون مدل رو میسازی میتونی برای SP پارامتر بفرستی


    Using(var db= new ModelName.Model_Datacontext())
    {
    string CName = "Col1";
    var x= db.aaa(CName);
    }
    دانلود حسابخانه مانی، برنامه مدیریت درآمد و هزینه رایگان

    هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
    واحد فاصله «متر» نیست، «اشتیاق» است. اگر مشتاقش باشی حتی يک قدم هم فاصله ای دور است.

    رنگ رنگی | آموزش

  7. #7

    نقل قول: نمایش اطلاعات pivot در یک دیتا گرید به کمک Ef

    نقل قول نوشته شده توسط Mani_rf مشاهده تاپیک
    من تو sp که نوشتی و همینطور توی کد ADO ، ندیدم جایی پارامتر فرستاده باشی. برای SP پارامتر تعریف کن، زمانی که از روی اون مدل رو میسازی میتونی برای SP پارامتر بفرستی


    Using(var db= new ModelName.Model_Datacontext())
    {
    string CName = "Col1";
    var x= db.aaa(CName);
    }
    سلام
    sp من در اصل بصورت زیر است

    ALTER proc [dbo].[S_ListShow_All]
    @Year NVARCHAR(10),
    @Month NVARCHAR(10)
    as


    begin
    DECLARE @id AS NVARCHAR(Max)
    DECLARE @names AS NVARCHAR(Max)
    DECLARE @Pivot AS NVARCHAR(MAX)
    ;WITH cte AS
    (
    SELECT DISTINCT [WatchTypeID] id, [Name]
    FROM [V_WatchType_Father_Child]
    where [WatchTypeID] in (select
    WatchTypeID
    from [dbo].[Watch_Subsidiary]
    where LEFT(dbo.PrDate([Date]),7)=@Year+'/'+@Month)
    )
    SELECT @names = ISNULL(@names + ', ' ,'') + '[' + CAST(id AS NVARCHAR(10)) + '] As [' + name + ']',
    @id = ISNULL(@id + ', ' ,'') + '[' + CAST(id AS NVARCHAR(10)) + ']'
    FROM cte
    -- SELECT @names, @id

    SET @Pivot =
    '
    select [pDate],[NameDate],[BusinessCalendar_DayTypeID],' + @names + '
    from
    (
    select [pDate], [WatchTypeID], [fn],[BusinessCalendar_DayTypeID],[NameDate]
    from V_Watch_List

    Where LEFT([pDate],7)= '''+@Year+'''+''/''+'''+@Month+'''
    ) src
    pivot
    (
    Max([fn])
    for [WatchTypeID] in (' + @id + ' )
    ) piv;
    '
    EXEC(@Pivot)
    end

  8. #8

    نقل قول: نمایش اطلاعات pivot در یک datagridview به کمک Ef

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

    هر آنچه که هستیم، نتیجه افکاریست که در گذشته داشته ایم. (بودا)
    واحد فاصله «متر» نیست، «اشتیاق» است. اگر مشتاقش باشی حتی يک قدم هم فاصله ای دور است.

    رنگ رنگی | آموزش

  9. #9

    نقل قول: نمایش اطلاعات pivot در یک datagridview به کمک Ef

    اگر تعداد ستونها از قبل مشخص و ثابت هست میشه کاری کرد ولی اگر تعداد مشخصی ندارند بایست به DataTable (یا ساختاری سبیه) تبدیل کنید.

  10. #10

    نقل قول: نمایش اطلاعات Dynamic Pivot از storedprocedure داینامیک بوسیله Entity Framework

    اساتید با همین sp می توانید دستور مورد نظر را بنویسید
    باتشکر

  11. #11

    نقل قول: نمایش اطلاعات pivot در یک دیتا گرید به کمک Ef

    نقل قول نوشته شده توسط Mani_rf مشاهده تاپیک
    اگر از EF6 یا بالاتر استفاده میکنی معادل چیزی که شما با ADO.Net نوشتی توی EF میشه :

    Using(var db= new ModelName.Model_Datacontext())
    {
    var x= db.aaa();
    }


    قبل از استفاده از این کد باید مثل عکس تیک sp مورد نظر رو هم در زمان ساختن مدل بزنی تا اون رو هم ایجاد کنه.

    T_EFStProc_02_01.png

    batch-import-fg1.PNG
    سلام
    من همه این کارها را کرده ام اما مشکل اینجاست که ستونها در sp مورد نظر داینامیک هستند و فقط یک ستون را نمایش می دهد
    آخرین ویرایش به وسیله Iran58 : شنبه 01 آبان 1395 در 13:05 عصر

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

  1. نمایش اطلاعات یک فیلد از تمام رکوردهای جدول در یک DBComboBox
    نوشته شده توسط am_sanatiz در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 6
    آخرین پست: شنبه 27 بهمن 1386, 15:46 عصر
  2. نمایش اطلاعات خوانده شده از بانک در ردیفهای جدول
    نوشته شده توسط sm_ezadpanah در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: سه شنبه 13 آذر 1386, 11:44 صبح
  3. نمایش اطلاعات در DataGridView از دیتابیس
    نوشته شده توسط rezaiy.ali در بخش VB.NET
    پاسخ: 1
    آخرین پست: شنبه 27 مرداد 1386, 10:09 صبح
  4. پاسخ: 3
    آخرین پست: یک شنبه 22 مرداد 1385, 14:30 عصر
  5. چگونگی نمایش اطلاعات UTF8ی که از بانک می خوانم
    نوشته شده توسط روح اله معینی زاده در بخش VB.NET
    پاسخ: 4
    آخرین پست: شنبه 26 فروردین 1385, 17:36 عصر

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

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