关联查询多表数据

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;

namespace MultiTableJoin
{
    public partial class Frm_Main : Form
    {
        public Frm_Main()
        {
            InitializeComponent();
        }

        private void Frm_Main_Load(object sender, EventArgs e)
        {
            DataClassesDataContext dc = new DataClassesDataContext();//创建LINQ对象
            var query = from sc in dc.SaleContent//销售主表
                        join sd in dc.SaleDetail on sc.SaleBillCode equals sd.SaleBillCode//按销售单据号关联销售主从表
                        join pi in dc.ProductInfo on sd.ProductCode equals pi.ProductCode//按商品代码关联商品信息表
                        join ei in dc.EmployeeInfo on sc.SaleMan equals ei.EmployeeCode//按人员代码关联员工表
                        join wi in dc.WarehouseInfo on sc.WareHouse equals wi.WareHouseCode//按仓库代码关联仓库信息表
                        join ci in dc.ClientInfo on sc.ClientCode equals ci.ClientCode//按客户代码关联客户信息表
                        select new
                        {
                            ID = sc.ID,
                            SaleBillCode = sc.SaleBillCode,//销售单据号
                            SaleMan = ei.Name,//从员工表取销售员名称
                            SaleDate = sc.SaleDate,//销售日期
                            Provider = ci.ShortName,//从客户表取购买单位名称
                            WareHouse = wi.ShortName,//从仓库表取仓库名称
                            ProductCode = pi.ProductCode,//从商品信息表取商品代码
                            ProductName = pi.ShortName,//商品名称
                            Quantity = sd.Quantity,//数量
                            Price = sd.Price,//单价
                            Amount = sd.Quantity * sd.Price,//金额
                            GrossProfit = sd.Quantity * (sd.Price - sd.Cost)//毛利=销售金额-商品成本
                        };
            dataGridView1.DataSource = query;//将查询的结果集绑定到dataGridView1
        }
    }
}
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值