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

نام تاپیک: نوشتن این کوئری با EF

  1. #1

    نوشتن این کوئری با EF

    سلام

    با فرض اینکه یک جدول بنام جدول خرید کالا و یک جدول جدا به نام جدول طرف جساب داریم که در جدول خرید کالا اطلاعات خرید کالا ذخیره میشود و در جدول طرف حساب اطلاعات طرف حساب (کسی که از اون کالا خریده ایم)

    یکی از فیلد های جدول طرف حساب ، نام طرف حساب میباشد . و یکی از فیلدهای جدول کالا ، شماره فاکتور خرید ،

    حال چطوری میتونم با این 2 فیلد ، نام طرف حساب را بدست بیارم؟

    مثلا اگه شماره فاکتور خرید 12 بود ، بگه فاکتور 12 برای آقای میرزاییان می باشد ؟

    آیا باید از ویو استفاده شود؟

  2. #2

    نقل قول: نوشتن این کوئری با EF

    به نظرم اگه بتونید عکسی از موجودیت هاتون رو اینجا قرار بدید راحت تر بشه کمک کرد.

  3. #3

    نقل قول: نوشتن این کوئری با EF

    در جدول خرید فیلد id_group_factorkharid کلید خارجی از جدول گروه خرید هست (فیلد id)

    در جدول گروه خرید فیلد id_tarafhesab کلید خارجی از جدول طرف حساب می باشد

    حالا چه کوئری بنویسم تا اگر کاربر id_group_factorkharid را 12 زد ، نام طرف حساب آنرا بر گردانم؟
    عکس های ضمیمه عکس های ضمیمه

  4. #4
    کاربر دائمی آواتار gilas1368
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مشهد
    پست
    1,178

    نقل قول: نوشتن این کوئری با EF

    باید سه تا table رو با هم Jion کنین
    و شرطتون هم این باشه ک اگ id جدول طرف حسابتون 12 بود نامش رو برگردونه

  5. #5

    نقل قول: نوشتن این کوئری با EF

    نیاز نیست از ویو استفاده کنم؟

  6. #6
    کاربر دائمی آواتار gilas1368
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مشهد
    پست
    1,178

    نقل قول: نوشتن این کوئری با EF

    نه
    با ی jion ساده کارتون راه میوفته
    البته این نظر منه

  7. #7

    نقل قول: نوشتن این کوئری با EF

    پس ویو ها در کجا کاربرد داره؟

  8. #8

    نقل قول: نوشتن این کوئری با EF

    سلام این کمکت میکنه
    Select Name_TarafHesab=(Select Name From Tarafhesab where ID =(Select Id_tarafhesab from group_kharid where id =(select id_factorKharid from kharid where id =adadedelkhah)

  9. #9
    کاربر دائمی آواتار gilas1368
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مشهد
    پست
    1,178

    نقل قول: نوشتن این کوئری با EF

    اینم تابع Join دوتا Table ک خروجیش ی لیست از نوع کلاسه

    امیدوارم مفید باشه

            public List<UserMemberOfInfo> GetMemberOfUser(int userId)
    {
    using (var db=new ERP_Main())
    {
    var result = from userRole in db.UserRoles
    join role in db.Roles on userRole.Role_Id equals role.Role_Id
    where userRole.User_Id == userId && role.Removed == false
    select new UserMemberOfInfo()
    {
    RoleId = role.Role_Id,
    Name = role.Name,
    Description = role.Description
    };

    return result.ToList();
    }

  10. #10

    نقل قول: نوشتن این کوئری با EF

    نقل قول نوشته شده توسط gilas1368 مشاهده تاپیک
    اینم تابع Join دوتا Table ک خروجیش ی لیست از نوع کلاسه

    امیدوارم مفید باشه

            public List<UserMemberOfInfo> GetMemberOfUser(int userId)
    {
    using (var db=new ERP_Main())
    {
    var result = from userRole in db.UserRoles
    join role in db.Roles on userRole.Role_Id equals role.Role_Id
    where userRole.User_Id == userId && role.Removed == false
    select new UserMemberOfInfo()
    {
    RoleId = role.Role_Id,
    Name = role.Name,
    Description = role.Description
    };

    return result.ToList();
    }
    میشه توضیح بدید داره چیکارا انجام میشه

  11. #11

    نقل قول: نوشتن این کوئری با EF

    نقل قول نوشته شده توسط gilas1368 مشاهده تاپیک
    اینم تابع Join دوتا Table ک خروجیش ی لیست از نوع کلاسه

    امیدوارم مفید باشه

            public List<UserMemberOfInfo> GetMemberOfUser(int userId)
    {
    using (var db=new ERP_Main())
    {
    var result = from userRole in db.UserRoles
    join role in db.Roles on userRole.Role_Id equals role.Role_Id
    where userRole.User_Id == userId && role.Removed == false
    select new UserMemberOfInfo()
    {
    RoleId = role.Role_Id,
    Name = role.Name,
    Description = role.Description
    };

    return result.ToList();
    }


    userRole چیه؟

  12. #12

    نقل قول: نوشتن این کوئری با EF

    شما یک کوئری شبیه به این نیاز دارید :

    var query = (from p in kharid
    join n in goruhkharid on p.id_group_factorkharid equals n.id_tarafhesab into pn
    where pn.id_group_factorkharid == 12
    from c in pn
    join d in tarafhesab on c.id_tarafhesab equals d.id
    select new {d.name_tarafhesab}).Single();

  13. #13
    کاربر دائمی آواتار gilas1368
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مشهد
    پست
    1,178

    نقل قول: نوشتن این کوئری با EF

    نقل قول نوشته شده توسط csharpprogramer88 مشاهده تاپیک
    userRole چیه؟
    UserRoler اسم جدول منه
    Role هم همینطور

  14. #14

    نقل قول: نوشتن این کوئری با EF

    نقل قول نوشته شده توسط Direlap مشاهده تاپیک
    شما یک کوئری شبیه به این نیاز دارید :

    var query = (from p in kharid
    join n in goruhkharid on p.id_group_factorkharid equals n.id_tarafhesab into pn
    where pn.id_group_factorkharid == 12
    from c in pn
    join d in tarafhesab on c.id_tarafhesab equals d.id
    select new {d.name_tarafhesab}).Single();

    join n in goruhkharid

    منظور از n چیه؟

  15. #15

    نقل قول: نوشتن این کوئری با EF

    نقل قول نوشته شده توسط csharpprogramer88 مشاهده تاپیک
    join n in goruhkharid

    منظور از n چیه؟
    n یک متغیری هست که ما خودمون اسمشو تعیین میکنیم و هدف از به کار بردنش مثل ایجاد نمونه ای از یه جدوله.

    در اینجا n رو میسازیم از یک جدول به نام goruhkharid تا به فیلد های اون جدول دسترسی داشته باشیم.

  16. #16
    مدیر بخش آواتار مهرداد صفا
    تاریخ عضویت
    تیر 1391
    محل زندگی
    select Country,City From World where Country.Name=IRAN and City.Contains(حضرت معصومه(ع))
    پست
    1,499

    نقل قول: نوشتن این کوئری با EF

    با سلام.
    با فرض اینکه یک پایگاه داده به نام JoinTest روی سرور وجود دارد؛ کد زیر یک جدول به نام costomer با دو فیلد id و name و یک جدول به نام facter با دو فیدل id و costomerId روی آن ایجاد می کند. در اولین query نام costomerی که مربوط به facterشماره 1 است گرفته و نمایش داده می شود و در ادامه یک view برای نمایش شماره فاکتور و نام مشتری مربوطه ساخته می شود:

    //in the name of god
    //اللهم صل علی محمد و آل محمد

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using Microsoft.VisualBasic;
    using System.Data.SqlClient;

    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();

    SqlConnection connection =new SqlConnection(@"server=.\sqlexpress;integrated security=true;database=jointest;");
    SqlCommand Command = new SqlCommand("", connection);
    connection.Open();
    Action<string> execute =(string sql) => { Command.CommandText = sql; Command.ExecuteNonQuery(); };
    execute("if(exists(select name from sys.tables where name='costomer')) drop table costomer;");
    execute("if(exists(select name from sys.tables where name='factor')) drop table factor;");
    execute("create table costomer(id int identity,name nvarchar(50))");

    execute( "create table factor (id int identity,costomerID int)");

    execute("insert into costomer values('costomer1')");

    execute( "insert into factor values (1)");
    execute("insert into costomer values('costomer2')");
    execute("insert into factor values(2)");
    Command.CommandText = "select cost.name from dbo.costomer cost join dbo.factor fact on cost.id=fact.costomerID where fact.id=1";

    SqlDataReader reader = Command.ExecuteReader();
    reader.Read();
    MessageBox.Show(reader[0].ToString());
    reader.Close();
    execute("if(exists(select name from sys.views where name='view1')) drop view view1;");
    execute("create view view1 as select cost.name, fact.id FactorId from costomer cost join factor fact on cost.id=fact.costomerID");
    Command.CommandText=("select * from view1");

    dataGridView1.DataSource =new DataTable();
    (dataGridView1.DataSource as DataTable).Load(Command.ExecuteReader());
    connection.Close();

    }
    }
    }


    اگر همین پایگاه داده را با دو جدول گفته شده به صورت entity model داشته باشیم و بخواهیم costomer مربوط به factor شماره یک را بگیریم به این صورت عمل می کنیم:

    JoinTestEntities dbo = new JoinTestEntities();
    string costomerName = (from cost in dbo.costomers join fact in dbo.factors on cost.id equals fact.costomerID where fact.id == 1 select cost.name).First();
    MessageBox.Show(costomerName);
    چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست
    **********
    اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ

  17. #17
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: نوشتن این کوئری با EF

    نقل قول نوشته شده توسط csharpprogramer88 مشاهده تاپیک
    سلام

    با فرض اینکه یک جدول بنام جدول خرید کالا و یک جدول جدا به نام جدول طرف جساب داریم که در جدول خرید کالا اطلاعات خرید کالا ذخیره میشود و در جدول طرف حساب اطلاعات طرف حساب (کسی که از اون کالا خریده ایم)

    یکی از فیلد های جدول طرف حساب ، نام طرف حساب میباشد . و یکی از فیلدهای جدول کالا ، شماره فاکتور خرید ،

    حال چطوری میتونم با این 2 فیلد ، نام طرف حساب را بدست بیارم؟

    مثلا اگه شماره فاکتور خرید 12 بود ، بگه فاکتور 12 برای آقای میرزاییان می باشد ؟

    آیا باید از ویو استفاده شود؟
    این کوئری برای دریافت اطلاعات:
    db_gannadiEntities2 context = new db_gannadiEntities2();
    var serv = (from s in context.tbl_kharid
    join sa in context.tbl_tarafhesab on s.id_group_factorkharid equals sa.id
    where sa.id == 1
    select s).ToList();
    dataGridView1.DataSource = serv;

    واین هم فرم بعد از واکشی اطلاعات:
    777ل.jpg

  18. #18
    کاربر دائمی آواتار khokhan
    تاریخ عضویت
    دی 1388
    محل زندگی
    اسکو
    پست
    2,176

    نقل قول: نوشتن این کوئری با EF

    البته چون امکان ارسال مستقیم نتیجه کوئری به گزارش نیست لذا ابتدا یه دیتاست از نتیجه کوری تشکیل بدین و بعد دیتا تیبل موجود در درون این دیتاست رو به گزارش ارسال کنین :

    اینطوری
    private void button1_Click(object sender, EventArgs e)
    {

    DataSet ds = new DataSet();
    DataSet1.ganadiDataTable tb = new DataSet1.ganadiDataTable();
    db_gannadiEntities2 context = new db_gannadiEntities2();
    var serv = (from s in context.tbl_kharid
    join sa in context.tbl_tarafhesab on s.id_group_factorkharid equals sa.id
    where sa.id == 1
    select s).ToList();
    foreach (tbl_kharid item in serv)
    {
    tb.Rows.Add(item.id, item.id_group_factorkharid, item.meghdarkharid, item.namekala,item.fee);
    }
    if (serv == null)
    {
    MessageBox.Show("null");
    }
    else
    {
    DataSet Ds = new DataSet();
    Ds.Tables.Add(tb);
    Stimulsoft.Report.StiReport stiReport1 = new Stimulsoft.Report.StiReport();
    stiReport1.Load(System.Windows.Forms.Application.S tartupPath + @"\stirpt.mrt");
    stiReport1.RegData(tb);
    stiReport1.Compile();
    stiReport1.Design();
    stiReport1.Show();

    }
    }


    این هم از گزارش با استیمول از همون کوئری جوین شده

    444نننننننننننننننننننننن.jpg

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

  1. مبتدی: رفع اشکال در مورد نحوه نوشتن این کوئری
    نوشته شده توسط ehsan640 در بخش MySQL
    پاسخ: 4
    آخرین پست: چهارشنبه 25 فروردین 1389, 00:15 صبح
  2. مشکل من توی نوشتن این کوئری در کجاست؟
    نوشته شده توسط kavoshgar63 در بخش PHP
    پاسخ: 6
    آخرین پست: شنبه 15 فروردین 1388, 14:50 عصر
  3. لطفا در نوشتن این گزارش کمک کنید
    نوشته شده توسط Vakily در بخش C#‎‎
    پاسخ: 1
    آخرین پست: یک شنبه 11 تیر 1385, 23:41 عصر
  4. طریقه نوشتن این کوئری
    نوشته شده توسط amir_3530 در بخش Access
    پاسخ: 2
    آخرین پست: یک شنبه 18 دی 1384, 13:29 عصر
  5. برا نوشتن این select کمکم کنید
    نوشته شده توسط coral در بخش برنامه نویسی در 6 VB
    پاسخ: 19
    آخرین پست: دوشنبه 30 آذر 1383, 12:19 عصر

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

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