Announcement

Collapse
No announcement yet.

Cách Đồng bộ dữ liệu trong SQL khi làm đồ án c#

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [C#] Cách Đồng bộ dữ liệu trong SQL khi làm đồ án c#

    Mình đang làm đồ án! Có các table như sau:
    Code:
    CREATE TABLE KHEUOCKHACHHANG_CN
    (
    	MaSoKUCN	Nvarchar(15)NOT NULL,
    	MaKHCN	char(10),
    	MaLoaiVay	Char(5),
    	MaKieuTra	Char(5),
    	MaChuongTrinh	Char(5),
    	NhuCau	Money,
    	NgayDuyet	Datetime,
    	MucDuyet	Money,
    	NgayVay	Datetime,
    	NgayTra	Datetime,
    	MaLaiSuat	Char(5),
    	MaMucDichVay	Char(5),
    	MaHTBaoDam	Char(5),
    	MaThoiHanVay	Char(5),
    	MaNV	Char(10),
    	MaHTVay	Char(5),
    	TraNoGocDinhKy	Int,
    	NgayTinhLai	Datetime
    )
    Code:
    CREATE TABLE THUNO_CN
    (
    	SoButToanCN	Char(5)NOT NULL,
    	NgayTN	Datetime,
    	MaSoKUCN	Nvarchar(15),
    	SoTienThu	Money,
    	SoTienGoc	Money,
    	SoTienConLai	Money,
    	MaLoaiChungTu	Char(5),
    )
    Khi mình làm 1 form thu nợ! Mình gõ MaSoKUCN thì phần SoTienGoc nó tự đồng bộ với số tiền trong MucDuyet trên bảng KHEUOCKHACHHANG_CN vậy ?

  • #2
    Trước hết nhìn vào cấu trúc 2 table THUNO_CN, KHEUOCKHACHHANG_CN mình chả thấy khóa chính ở đâu cả.
    Khi đã có giá trị MaSoKUCN của table THUNO_CN.
    Bạn "select" kiểm tra xem giá trị này có tồn tại ở MaSoKUCN của table KHEUOCKHACHHANG_CN. Từ đó xuất ra "id" của row nếu tồn tại giá trị này. Tiếp đó là cập nhât dữ liệu SoTienGoc vào table KHEUOCKHACHHANG_CN khi đã biết id(khóa chính) cần cập nhật.
    Last edited by 12520545; 05-06-2014, 17:30.

    Comment


    • #3
      Originally posted by 12520884 View Post
      Mình đang làm đồ án! Có các table như sau:
      Code:
      CREATE TABLE KHEUOCKHACHHANG_CN
      (
          MaSoKUCN    Nvarchar(15)NOT NULL,
          MaKHCN    char(10),
          MaLoaiVay    Char(5),
          MaKieuTra    Char(5),
          MaChuongTrinh    Char(5),
          NhuCau    Money,
          NgayDuyet    Datetime,
          MucDuyet    Money,
          NgayVay    Datetime,
          NgayTra    Datetime,
          MaLaiSuat    Char(5),
          MaMucDichVay    Char(5),
          MaHTBaoDam    Char(5),
          MaThoiHanVay    Char(5),
          MaNV    Char(10),
          MaHTVay    Char(5),
          TraNoGocDinhKy    Int,
          NgayTinhLai    Datetime
      )
      Code:
      CREATE TABLE THUNO_CN
      (
          SoButToanCN    Char(5)NOT NULL,
          NgayTN    Datetime,
          MaSoKUCN    Nvarchar(15),
          SoTienThu    Money,
          SoTienGoc    Money,
          SoTienConLai    Money,
          MaLoaiChungTu    Char(5),
      )
      Khi mình làm 1 form thu nợ! Mình gõ MaSoKUCN thì phần SoTienGoc nó tự đồng bộ với số tiền trong MucDuyet trên bảng KHEUOCKHACHHANG_CN vậy ?

      Bạn nên thiết kế khóa chính khóa ngoại và bỏ đi phần mình tô đỏ như trong hình ấy.
      Khi bạn gọi form Thu Nợ, bạn sẽ phải truyền vào MaSoKUCN để nó biết bạn đang gọi tới KHEUOCKHACHHANG_CN nào và bạn chỉ phải nhập SoTienThu mà thôi. Sau đó nó sẽ lấy Số tiền gốc từ chính bảng KHEUOCKHACHHANG_CN (cái mà bạn đặt tên là MucDuyet) phục vụ cho việc tính toán. Ví dụ bạn muốn biết Số tiền còn lại thì chỉ việc Select 2 bảng này, Lấy MucDuyet - SoTienThu = SoTienConLai, tránh trường hợp phải lưu lại.
      Còn nếu như bạn phải đụng chạm tới nhiều lần cái SoTienConLai, để khỏi tính toán (giảm hiệu suất khi lúc nào cũng MucDuyet - SoTienThu = SoTienConLai) thì bạn nên thêm field SoTienConLai vào bảng THUNO_CN luôn ^^.

      Comment


      • #4
        đầy mình demo đây cho mọi người dễ hình dung! ( Số tiền gốc chính là Mức Duyệt trong Khế Ước Khách Hàng Cá Nhân )
        Untitled1.pngUntitled2.png

        Comment


        • #5
          Mình làm được rồi! Nhưng khi Debug code sau bi lỗi
          Code:
          public partial class Form1 : Form
              {
                  string strconnection=@"Data source=NHATNGUYEN\SQLEXPRESS;Initial Catalog=QLVayVonChoNHCSXH;Integrated Security=True";
                  SqlConnection conn = new SqlConnection();
                  SqlDataAdapter daThuVon=null;
                  DataTable dtThuVon=null;
                  bool them;
                  public Form1()
                  {
                      InitializeComponent();
                  }
          
                  private void thuVonBindingNavigatorSaveItem_Click(object sender, EventArgs e)
                  {
                      this.Validate();
                      this.thuVonBindingSource.EndEdit();
                      this.tableAdapterManager.UpdateAll(this.qLVayVonChoNHCSXHDataSet);
          
                  }
          private void button1_Click(object sender, EventArgs e)
                  {
                      conn.Open();
                      if(them)
                      {
                          try
                          {
                              SqlCommand cmd=new SqlCommand();
                              cmd.Connection=conn;
                              cmd.CommandType=CommandType.Text;
                              cmd.CommandText=System.String.Concat("Insert Into ThuVon(SobutToanCN,NgayTN,MaSoKUCN,SoTienThu,SoTienGoc,SoTienConLai,MaLoaiChungTu) Values("+this.soButToanTextEdit.ToString()+","+this.ngayTVDateEdit.ToString()+","+this.comboBox1.ToString()+","+this.soTienThuSpinEdit.ToString()+","+this.comboBox2.ToString()+","+this.soTienConLaiSpinEdit.ToString()+","+this.maLoaiChungTuTextEdit.ToString()+","+this.taiKhoanNoTextEdit.ToString()+","+this.taiKhoanCoTextEdit.ToString()+")");
                              cmd.CommandType=CommandType.Text;
                              cmd.ExecuteNonQuery();
                              MessageBox.Show("Đã Thêm XOng");
                          }
                          catch(SqlException)
                          {
                              MessageBox.Show("Loi");
                          }
                        }
                   }
          }
          bị lỗi ngay chữ conn.open() khi mình bắt đầu nhấn click ( để nó lưu lai thông tin, khi mình nhap het thong tin )

          Comment


          • #6
            Đối tượng conn bạn chưa đưa chuổi kết nối vào kìa.
            SqlConnection conn = new SqlConnection(strconnection);
            Cái gì của mình thì sẽ là của mình, còn đã không phải của mình thì trước sau gì cũng thuộc về mình..

            Comment


            • #7
              Originally posted by 11520389 View Post
              Đối tượng conn bạn chưa đưa chuổi kết nối vào kìa.
              SqlConnection conn = new SqlConnection(strconnection);
              Thank bạn mình làm được rồi! Giờ Mình muốn kiểm tra 1 MaSoKUCN đã tồn tại trong bảng ThuNo chưa! Nếu rồi thì SoTienConLai=SoTienGoc=SoTienConlai-SotienThu ! Còn chưa tồn tại thì SoTienCOnLai=SotienGoc-SoTienThu! Thì làm như thế nào vậy?

              Comment


              • #8
                Bạn có thể viết trigger.
                Cái gì của mình thì sẽ là của mình, còn đã không phải của mình thì trước sau gì cũng thuộc về mình..

                Comment


                • #9
                  Originally posted by 11520389 View Post
                  Bạn có thể viết trigger.
                  bạn có thể demo cho mình cái này dc ko? mình đang rối rắm phần này =="

                  Comment


                  • #10
                    Cho mình hỏi khi nộp bài cần liên kết cơ sở dữ liệu thì mình nộp code và nộp file j của cơ sở dữ liệu thanks!

                    Comment

                    LHQC

                    Collapse
                    Working...
                    X