Thêm, xóa nhiều dòng dữ liệu trong Linq to sql
Hướng dẫn các thêm nhiều dòng dữ liệu và xóa nhiều dòng dữ liệu trong linq và sửa dữ liệu trong linq
Code hướng dẫn thực hành.
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 frmthem_nhieusanpham : Form
{
public frmthem_nhieusanpham()
{
InitializeComponent();
}
private void frmthem_nhieusanpham_Load(object sender, EventArgs e)
{
Hienthisanphamlenlist();
Hiencombobox();
}
private void Hiencombobox()
{
CSDLLINQDATADataContext contex = new CSDLLINQDATADataContext();
List<DanhMuc> dsdm = contex.DanhMucs.ToList();
cboDM.Items.Clear();
cboDM.DataSource = dsdm;
cboDM.ValueMember = "MaDM";
cboDM.DisplayMember = "TenDm";
}
private void Hienthisanphamlenlist()
{
CSDLLINQDATADataContext contex = new CSDLLINQDATADataContext();
List<SanPham> dssp = contex.SanPhams.ToList();
lvSanPham.Items.Clear();
dssp.ForEach(x =>
{
ListViewItem lvi = new ListViewItem(x.Ma+"");
lvi.SubItems.Add(x.Ten);
lvi.SubItems.Add(x.DonGia + "");
lvSanPham.Items.Add(lvi);
}
);
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void lvSanPham_SelectedIndexChanged(object sender, EventArgs e)
{
if (lvSanPham.SelectedItems.Count==0)
{
return;
}
ListViewItem lvi = lvSanPham.SelectedItems[0];// chọn dòng sản phẩm đầu tiên
int msp = int.Parse(lvi.SubItems[0].Text);// lấy mã sản phẩm ra và kiểu chuỗi nên phải ép kiểu
CSDLLINQDATADataContext contex = new CSDLLINQDATADataContext();
SanPham sp = contex.SanPhams.FirstOrDefault(x => x.Ma == msp);
if (sp!=null)
{
txtMa.Text = sp.Ma + "";
txtTen.Text = sp.Ten;
txtGia.Text = sp.DonGia + "";
cboDM.Text = sp.MaDM + "";
}
}
List<SanPham> dsspmoi = new List<SanPham>();// tao bộ nhớ ảo để lưu tạm
private void btnThem_Click(object sender, EventArgs e)
{
if (cboDM.SelectedValue==null)
{
return;
}
int madm = (int)cboDM.SelectedValue;
SanPham sp = new SanPham();
sp.Ma = int.Parse(txtMa.Text);
sp.Ten = txtTen.Text;
sp.DonGia = int.Parse(txtGia.Text);
sp.MaDM = madm;
dsspmoi.Add(sp);
txtMa.Clear();
txtTen.Clear();
txtGia.Clear();
txtMa.Focus();
}
private void btnLuu_Click(object sender, EventArgs e)
{
DialogResult ret = MessageBox.Show("Ban muốn lưu" + dsspmoi.Count + "hay không","Hỏi trước khi lưu",MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (ret == DialogResult.Yes)// hỏi người dùng đồng ý mới lưu
{
try
{
CSDLLINQDATADataContext contex = new CSDLLINQDATADataContext();
contex.SanPhams.InsertAllOnSubmit(dsspmoi);
contex.SubmitChanges();
MessageBox.Show(" đã lưu thành công");
Hienthisanphamlenlist();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
CSDLLINQDATADataContext contex = new CSDLLINQDATADataContext();
int masp = int.Parse(txtMa.Text);
SanPham sp = contex.SanPhams.FirstOrDefault(x => x.Ma == masp);
if (sp != null)
{
try
{
sp.Ten = txtTen.Text;
sp.DonGia = int.Parse(txtGia.Text);
contex.SubmitChanges();
MessageBox.Show(" sửa thành công");
Hienthisanphamlenlist();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void btnXoaSP_Click(object sender, EventArgs e)
{
if (lvSanPham.CheckedItems.Count==0)// trả về một tập dòng dữ liệu người check vào nếu count=0 là không có người click
{
return;
}
ListView.CheckedListViewItemCollection dschecked
= lvSanPham.CheckedItems;// tạo danh sách check mag người dùng check vào
CSDLLINQDATADataContext contex = new CSDLLINQDATADataContext();
List<SanPham> dsxoa = new List<SanPham>();// tạo bộ nhớ đưa danh sách checked vào để xóa
foreach (ListViewItem lvi in dschecked) // tim dòng sản phẩm được chọn trong dschecked
{
int masp = int.Parse(lvi.SubItems[0].Text);// lấy ra mã được check
SanPham sp = contex.SanPhams.FirstOrDefault(x => x.Ma == masp);
dsxoa.Add(sp);
}
DialogResult ret = MessageBox.Show("Ban muốn xóa [" + dsxoa.Count
+ "] Sản Phẩm hay không", "Hỏi trước khi xóa", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (ret==DialogResult.Yes)
{
contex.SanPhams.DeleteAllOnSubmit(dsxoa);
contex.SubmitChanges();
Hienthisanphamlenlist();
}
}
}
}
Không có nhận xét nào