简体   繁体   中英

How can i select multiple table to datagridview?

I'm trying to combine 3 table into 1 datagridview but i want some spesific columns from each table

these are my tables

a.Malzemeler -Malzeme_ID (PK) -Malzemeİsmi -Gram_mL -Adet -BirimFiyat -ToplamFiyat

b.Tarifler -Tarif_ID (PK) -Tarif_İsmi -Talimatlar

c.TariflerveMalzemeler -ID -Tarif_ID (FK) -Malzeme_ID (FK) -Gram_mL -Adet

what i want to do is

d.Result -Tarif_İsmi (From table b) -Malzeme_İsmi (from table a) -Gram_mL(From table c) -Adet (from table c) -Talimatlar (From Table b)

My select query work on SQL

"SELECT Tarif_İsmi,Malzemeİsmi, TariflerveMalzemeler.Gram_mL, TariflerveMalzemeler.Adet, Talimatlar FROM Malzemeler 
JOIN TariflerveMalzemeler ON Malzemeler.Malzeme_ID = TariflerveMalzemeler.Malzeme_ID JOIN Tarifler ON TariflerveMalzemeler.Tarif_ID = Tarifler.Tarif_ID"

but i dont know how to make it work on datagridview?

Try following:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

namespace ConsoleApplication166
{
    class Program
    {
        static void Main(string[] args)
        {
            DataTable Malzemeler = new DataTable();
            Malzemeler.Columns.Add("Malzeme_ID", typeof(string));
            Malzemeler.Columns.Add("Malzemeİsmi", typeof(string));
            Malzemeler.Columns.Add("Gram_mL", typeof(string));
            Malzemeler.Columns.Add("Adet", typeof(string));
            Malzemeler.Columns.Add("BirimFiyat", typeof(string));
            Malzemeler.Columns.Add("ToplamFiyat", typeof(string));

            DataTable Tarifler = new DataTable();
            Tarifler.Columns.Add("Tarif_ID", typeof(string));
            Tarifler.Columns.Add("Tarif_İsmi", typeof(string));
            Tarifler.Columns.Add("Talimatlar", typeof(string));

            DataTable TariflerveMalzemeler = new DataTable();
            TariflerveMalzemeler.Columns.Add("ID", typeof(string));
            TariflerveMalzemeler.Columns.Add("Tarif_ID", typeof(string));
            TariflerveMalzemeler.Columns.Add("Malzeme_ID", typeof(string));
            TariflerveMalzemeler.Columns.Add("Gram_mL", typeof(string));
            TariflerveMalzemeler.Columns.Add("Adet", typeof(string));

            DataTable Result = new DataTable();
            Result.Columns.Add("Tarif_İsmi", typeof(string));
            Result.Columns.Add("Malzeme_İsmi", typeof(string));
            Result.Columns.Add("Gram_mL", typeof(string));
            Result.Columns.Add("Adet", typeof(string));
            Result.Columns.Add("Talimatlar", typeof(string));

            var joins = from  tm in TariflerveMalzemeler.AsEnumerable()
                        join m in Malzemeler.AsEnumerable() on tm.Field<string>("Malzeme_ID") equals m.Field<string>("Malzeme_ID")
                        join t in Tarifler.AsEnumerable() on tm.Field<string>("Tarif_ID") equals t.Field<string>("Tarif_ID")
                        select new { tm = tm, m = m, t = t};
            foreach (var j in joins)
            {
                Result.Rows.Add(new object[] {
                    j.t.Field<string>("Tarif_İsmi"),
                    j.m.Field<string>("Malzeme_İsmi"),
                    j.tm.Field<string>("Gram_mL"),
                    j.tm.Field<string>("Adet"),
                    j.t.Field<string>("Talimatlar")
                });
            }
        }
    }

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM