Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 6 của 6
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    public Object DataTable.Compute(
    string expression,string filter
    );
    //
    dùng để tính cho các cột tính toán.
    //
    không dùng cột tính toán cũng được - chuẩn hóa cao, người ta không dùng nó.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Phép tính toán trong linq to sql

    Chào mọi người!
    em mới học lập trình c#. em đang tập viết 1 phần mềm quản lý bán hàng nhỏ. em bị vướng mắc một chỗ không biết viết code ra sao hết.
    moị người giúp em ạ:

    em đang tập viết theo mô hình 3 lớp linq. về table CTHD bán hàng gồm các trường: MaCTHD, NgayLap, SoLuong, DonGia, ThanhTien
    trường thành tiền: ThanhTien=soluong*dongia mà em không biết viết như thế nào cả code của em viết như sau:

    public void them (string mahd, string mahang, double soluongmua,double dongiaban, double thanhtien )
    {
    tblCTHD addcthd = new tblCTHD();
    addcthd.MaHD = mahd;
    addcthd.MaHang = mahang;
    addcthd.SoLuongMua = soluongmua;
    addcthd.DonGiaBan = dongiaban;
    addcthd.ThanhTien = double(soluongmua)*(dongiaban);
    db.tblCTHDs .InsertOnSubmit(addcthd);
    db.SubmitChanges();
    }
    giúp em giải quyết vấn đề này với: viết như thế nào cho đúng để khi nhập liệu vào trường thành tiền tự tính ra luôn
    em cám ơn mọi người nhiều

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Sử dụng định dạng cho dễ đọc : code=C#
    //
    tham khảo thêm :
    http://diendan.congdongcviet.com/threads/t342708::sao-lai-bi-loi-ko-tim-ra-dc-gia-tri-min-csharp.cpp
    //
    Đọc bằng text khổ lắm, phải đánh vần nản.

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Van8Hien62
    public Object DataTable.Compute(
    string expression,string filter
    );
    //
    dùng để tính cho các cột tính toán.
    //
    không dùng cột tính toán cũng được - chuẩn hóa cao, người ta không dùng nó.
    bạn có thể nói rõ không. mình còn gà lắm vì mới tham tập học lập trình ah
    tiện cho mình hỏi luôn:
    mình viết theo mô hình 3 lớp linq to sql;
    đây là code mình vieets trên lớp BUS:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using DAL;

    namespace BUS
    {
    public class CTHD
    {
    qlbanhangDataContext db = new qlbanhangDataContext();
    public IEnumerable<tblCTHD>LayTatCa()
    {
    IEnumerable<tblCTHD> cthd = from ct in db.tblCTHDs
    //where ct.ThanhTien= double(ct.SoLuongMua * ct.DonGiaBan)
    select ct;
    return cthd;
    }

    public List<tblCTHD> timkiem(string mahd)
    {
    var kq = db.tblCTHDs.Select(tk => new tblCTHD
    {
    MaHD=tk.MaHD,
    MaHang=tk.MaHang,
    SoLuongMua=tk.SoLuongMua,
    DonGiaBan=tk.DonGiaBan,
    ThanhTien=tk.ThanhTien
    }).Where(tkh => tkh.MaHD.Contains(mahd)).ToList();
    return kq;
    }
    public void them (string mahd, string mahang, double soluongmua,double dongiaban, double thanhtien )
    {
    tblCTHD addcthd = new tblCTHD();
    addcthd.MaHD = mahd;
    addcthd.MaHang = mahang;
    addcthd.SoLuongMua = soluongmua;
    addcthd.DonGiaBan = dongiaban;
    //thanhtien = soluongmua * dongiaban;
    addcthd.ThanhTien = Convert.ToDouble(thanhtien=(soluongmua*dongiaban)) ;
    db.tblCTHDs .InsertOnSubmit(addcthd);
    db.SubmitChanges();
    }
    public void sua (string mahd, string mahang, double soluongmua,double dongiaban, double thanhtien)
    {
    tblCTHD updatecthd = (from ct in db.tblCTHDs
    select ct).Single(cthd => cthd.MaHD == mahd);
    updatecthd.MaHang = mahang;
    updatecthd.SoLuongMua = soluongmua;
    updatecthd.DonGiaBan = dongiaban;
    //thanhtien = soluongmua * dongiaban;
    updatecthd.ThanhTien = Convert.ToDouble(thanhtien = (soluongmua * dongiaban));
    db.tblCTHDs.InsertOnSubmit(updatecthd);
    db.SubmitChanges();
    }
    public void xoa(string mahd)
    {
    tblCTHD delete = (from ct in db.tblCTHDs
    select ct).Single(cthd => cthd.MaHD == mahd);
    db.tblCTHDs.InsertOnSubmit(delete);
    db.SubmitChanges();
    }
    }
    }


    đây là code nút lưu mình viết trên form mà nút lưu không hoạt động vì viết sai mình k biêt cách sửa:

    private void btnluu_Click(object sender, EventArgs e)
    {
    cthd.MaHD = txtmahd.Text;
    cthd.MaHang = txtmahang.Text;
    cthd.SoLuongMua = double.Parse(txtsoluongmua.Text);
    cthd.DonGiaBan = double.Parse(txtdongiaban.Text);
    cthd.ThanhTien = double.Parse(txtthanhtien.Text);
    if(IsInsert==true)
    {
    //them
    bus.them(tblCTHD);
    //bus.them(txtmahd.Text, txtmahang.Text, txtsoluongmua.Text, txtdongiaban.Text, txtthanhtien.Text);
    XtraMessageBox.Show("Thêm Thông Tin Thành Công", "Thông Báo");
    hienthi();
    xoatext();
    khoa();

    }
    else
    {
    //update
    bus.sua(txtmahd.Text, txtmahang.Text, double.Parse(txtsoluongmua.Text), double.Parse(txtdongiaban.Text), double.Parse(txtthanhtien.Text));
    XtraMessageBox.Show("Sửa Thông Tin Thành Công", "Thông Báo");
    hienthi();
    xoatext();
    khoa();
    }
    }

    bạn sửa giúp mình với cám ơn bạn nhiều:
    mình muốn làm sao mà chỉ nhập soluong mua và đơn giá bán số tiền tự tính trên cột thành tiền luôn

    cám ơn bạn nhièu

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi chuotconbibo
    bạn có thể nói rõ không. mình còn gà lắm vì mới tham tập học lập trình ah
    tiện cho mình hỏi luôn:
    mình viết theo mô hình 3 lớp linq to sql;
    đây là code mình vieets trên lớp BUS:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using DAL;

    namespace BUS
    {
    public class CTHD
    {
    qlbanhangDataContext db = new qlbanhangDataContext();
    public IEnumerable<tblCTHD>LayTatCa()
    {
    IEnumerable<tblCTHD> cthd = from ct in db.tblCTHDs
    //where ct.ThanhTien= double(ct.SoLuongMua * ct.DonGiaBan)
    select ct;
    return cthd;
    }

    public List<tblCTHD> timkiem(string mahd)
    {
    var kq = db.tblCTHDs.Select(tk => new tblCTHD
    {
    MaHD=tk.MaHD,
    MaHang=tk.MaHang,
    SoLuongMua=tk.SoLuongMua,
    DonGiaBan=tk.DonGiaBan,
    ThanhTien=tk.ThanhTien
    }).Where(tkh => tkh.MaHD.Contains(mahd)).ToList();
    return kq;
    }
    public void them (string mahd, string mahang, double soluongmua,double dongiaban, double thanhtien )
    {
    tblCTHD addcthd = new tblCTHD();
    addcthd.MaHD = mahd;
    addcthd.MaHang = mahang;
    addcthd.SoLuongMua = soluongmua;
    addcthd.DonGiaBan = dongiaban;
    //thanhtien = soluongmua * dongiaban;
    addcthd.ThanhTien = Convert.ToDouble(thanhtien=(soluongmua*dongiaban)) ;
    db.tblCTHDs .InsertOnSubmit(addcthd);
    db.SubmitChanges();
    }
    public void sua (string mahd, string mahang, double soluongmua,double dongiaban, double thanhtien)
    {
    tblCTHD updatecthd = (from ct in db.tblCTHDs
    select ct).Single(cthd => cthd.MaHD == mahd);
    updatecthd.MaHang = mahang;
    updatecthd.SoLuongMua = soluongmua;
    updatecthd.DonGiaBan = dongiaban;
    //thanhtien = soluongmua * dongiaban;
    updatecthd.ThanhTien = Convert.ToDouble(thanhtien = (soluongmua * dongiaban));
    db.tblCTHDs.InsertOnSubmit(updatecthd);
    db.SubmitChanges();
    }
    public void xoa(string mahd)
    {
    tblCTHD delete = (from ct in db.tblCTHDs
    select ct).Single(cthd => cthd.MaHD == mahd);
    db.tblCTHDs.InsertOnSubmit(delete);
    db.SubmitChanges();
    }
    }
    }


    đây là code nút lưu mình viết trên form mà nút lưu không hoạt động vì viết sai mình k biêt cách sửa:

    private void btnluu_Click(object sender, EventArgs e)
    {
    cthd.MaHD = txtmahd.Text;
    cthd.MaHang = txtmahang.Text;
    cthd.SoLuongMua = double.Parse(txtsoluongmua.Text);
    cthd.DonGiaBan = double.Parse(txtdongiaban.Text);
    cthd.ThanhTien = double.Parse(txtthanhtien.Text);
    if(IsInsert==true)
    {
    //them
    bus.them(tblCTHD);
    //bus.them(txtmahd.Text, txtmahang.Text, txtsoluongmua.Text, txtdongiaban.Text, txtthanhtien.Text);
    XtraMessageBox.Show("Thêm Thông Tin Thành Công", "Thông Báo");
    hienthi();
    xoatext();
    khoa();

    }
    else
    {
    //update
    bus.sua(txtmahd.Text, txtmahang.Text, double.Parse(txtsoluongmua.Text), double.Parse(txtdongiaban.Text), double.Parse(txtthanhtien.Text));
    XtraMessageBox.Show("Sửa Thông Tin Thành Công", "Thông Báo");
    hienthi();
    xoatext();
    khoa();
    }
    }

    bạn sửa giúp mình với cám ơn bạn nhiều:
    mình muốn làm sao mà chỉ nhập soluong mua và đơn giá bán số tiền tự tính trên cột thành tiền luôn

    cám ơn bạn nhièu
    Sự kiện nút lưu của bạn gọi đến hàm "them" truyền đầu vào sai kiểu và sai số lượng đầu vào (Bạn để ý hàm "sua" của bạn và làm giống vậy).

    Thứ 2:

    giúp em giải quyết vấn đề này với: viết như thế nào cho đúng để khi nhập liệu vào trường thành tiền tự tính ra luôn
    - Bạn viết code tính toán giá trị trong sự kiện text change của 1 trong 2 ô nhập (số lượng, hoặc đơn giá). Nhưng nhớ check điều kiện logic nhé:
    Ví dụ: Trong sự kiện Text change của ô nhập số lượng (trường hợp bạn đã nhập đơn giá trước):
    Mã:
    if(txtDongia.Text != null and int.parse(txtDongia.text) > 0)
    {
      long tongtien=long.parse(int.parse(txtDongia.text) * int.parse(txtSoluong.text));
      txtTongTien.Text= tongtien.ToString();
    }
    Hoặc ngược lại với sự kiện text change của ô Đơn giá nếu bạn nhập số lượng trước.
    (Ngoài ra nhớ try.. catch bắt ngoại lệ ký tự nhập vào không là số nhé.)
    Chúc bạn thành công!

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi vantai_hd
    Sự kiện nút lưu của bạn gọi đến hàm "them" truyền đầu vào sai kiểu và sai số lượng đầu vào (Bạn để ý hàm "sua" của bạn và làm giống vậy).

    Thứ 2:
    - Bạn viết code tính toán giá trị trong sự kiện text change của 1 trong 2 ô nhập (số lượng, hoặc đơn giá). Nhưng nhớ check điều kiện logic nhé:
    Ví dụ: Trong sự kiện Text change của ô nhập số lượng (trường hợp bạn đã nhập đơn giá trước):
    Mã:
    if(txtDongia.Text != null and int.parse(txtDongia.text) > 0)
    {
      long tongtien=long.parse(int.parse(txtDongia.text) * int.parse(txtSoluong.text));
      txtTongTien.Text= tongtien.ToString();
    }
    Hoặc ngược lại với sự kiện text change của ô Đơn giá nếu bạn nhập số lượng trước.
    (Ngoài ra nhớ try.. catch bắt ngoại lệ ký tự nhập vào không là số nhé.)
    Chúc bạn thành công!
    mình cảm ơn bạn đã giúp đỡ.
    mình đang làm theo cách của bạn. mình thành thật cám ơn bạn nhiều
    khi nào mình làm xong mình sẽ báo cho bạn biết

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •