Breaking News

Truy vấn xem chi tiết sản phẩm bằng linq to sql server

Hướng dẫn cách xem chi tiết sản phẩm dùng linq to sql server bằng 2 cach là Method Syntax và Query Syntax bằng listbox và combobox hiện thị chi tiết lên text


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

namespace LinqToSQL

{

   public partial class frmXemSanPham : Form

    {

        public frmXemSanPham()

        {

            InitializeComponent();

        }


  private void frmXemSanPham_Load(object sender, EventArgs e)

        {

            lstSanPham.Items.Clear();

 CSDLLINQDATADataContext contex = new CSDLLINQDATADataContext();

            var csdl = contex.SanPhams.Select(x => x.Ma  );

            foreach (var item in csdl)

            {

                lstSanPham.Items.Add(item);

            }

            List<SanPham> dssp = contex.SanPhams.ToList();//lấy toàn bộ sản phẩm

            cboSanPham.DataSource = dssp;

            cboSanPham.ValueMember = "Ma";// lấy đúng cột mã trong csdl

            cboSanPham.DisplayMember = "Ten"; // là hiện lên combobox

            keththuc = true;// kết thúc lệnh cho biến kết thúc =true (commbo)

        }

 

private void lstSanPham_SelectedIndexChanged(object sender, EventArgs e)

        {

            if (lstSanPham.SelectedIndex==-1)// là không có chọn dòng nào trên list

            {

                return;

 

            }

            int ma = int.Parse(lstSanPham.Text);// lấy mã text trên listbox

            SanPham sp = laysanpham(ma);

            if (sp!=null)// có chọn sản phẩm

            {

                txtMa.Text = sp.Ma + "";

                txtTen.Text = sp.Ten;

                txtGia.Text = sp.DonGia + "";

            }

        }

 public SanPham laysanpham(int id)// lấy chi tiết sản phẩm theo ID mã

        {

CSDLLINQDATADataContext contex = new CSDLLINQDATADataContext();

 SanPham sp = contex.SanPhams.FirstOrDefault(x => x.Ma == id);// firstodefault là tìm sản phẩm đầu tiên thỏa mãn điều kiện

            return sp;

        }

     private void txtTim_Click(object sender, EventArgs e)

        {

            int ma = int.Parse(txtTimMa.Text);

            SanPham sp = laysanpham(ma);// tận dùng lại hàm lấy sản phẩm

            if (sp != null)// có chọn sản phẩm

            {

                txtMa.Text = sp.Ma + "";

                txtTen.Text = sp.Ten;

                txtGia.Text = sp.DonGia + "";

            }

            else

            {

                MessageBox.Show(" Không tìm thấy kết quả");

            }

        }

 bool keththuc = false; // khi sử dụng combo click chọn sản phẩm

private void cboSanPham_SelectedIndexChanged(object sender, EventArgs e)// double click vào combo

        {

            if (keththuc==false)// nếu chưa chọn xong thì return

            {

                return;

            }

 CSDLLINQDATADataContext contex = new CSDLLINQDATADataContext();

            int id = (int)(cboSanPham.SelectedValue);//mã là(id) kiểu in nên lấy ra phải ép kiểu

            SanPham sp = (from x in contex.SanPhams

                          where x.Ma == id

                          select x).FirstOrDefault();

 

            if (sp != null)// có chọn sản phẩm từ combo hiện lên text

            {

                txtMaSP.Text = sp.Ma + "";

                txtTenSanPham.Text = sp.Ten;

                txtGiaSanPham.Text = sp.DonGia + "";

            }

            else

            {

                MessageBox.Show(" Không tìm thấy kết quả");

            }

        }

    }

}

 

 

Không có nhận xét nào