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