Mình đang làm đồ án! Có các table như sau:
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
)
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 ?
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.
[QUOTE=12520884;281618]Mình đang làm đồ án! Có các table như sau:
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
)
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 ?[/QUOTE]

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 ^^.
đầ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 )


Mình làm được rồi! Nhưng khi Debug code sau bi lỗi
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 )
Đối tượng conn bạn chưa đưa chuổi kết nối vào kìa.
SqlConnection conn = new SqlConnection(strconnection);
[QUOTE=11520389;281958]Đối tượng conn bạn chưa đưa chuổi kết nối vào kìa.
SqlConnection conn = new SqlConnection(strconnection);[/QUOTE]
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?
[QUOTE=11520389;281960]Bạn có thể viết trigger.[/QUOTE]
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 =="
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!