• [THÔNG BÁO] CẢNH BÁO LỪA ĐẢO MẠO DANH QUẢN TRỊ VIÊN
    Chào các thành viên GameVN,
    Dạo gần đây tình trạng lừa đảo scamming và phishing đang gia tăng. Ban quản trị GameVN xin lưu ý toàn bộ thành viên:
    KHÔNG/ ĐỪNG / CẤM cho bất kỳ ai tự xưng là quản trị viên của server vay tiền.
    Mọi hành vi lân la làm quen, tự tiện nhắn tin trên Discord, Facebook, Zalo hoặc các nền tảng mạng xã hội khác,
    núp bóng dưới danh nghĩa sinh hoạt của quản trị viên, đều có tỉ lệ rất, rất cao là lừa đảo.
    Nếu có tài khoản lạ add friend hoặc nhắn tin xin tiền dưới danh nghĩa admin:
    Block ngay
    Report ngay
    Không chuyển khoản, không cung cấp thông tin cá nhân


    Quản trị viên của forum và Discord server GameVN không có nhu cầu vay tiền thành viên.
    Không có lý do nào để admin chủ động kết bạn rồi xin tiền.
    Mọi thông báo chính thức chỉ được đăng trên kênh thông báo của server và topic chính thức trên forum.
    Tin nhắn riêng từ tài khoản lạ không phải thông báo của ban quản trị.
    Cảm ơn các bạn đã chú ý và cùng giữ cộng đồng an toàn.
    — Ban quản trị GameVN

    Tắt thông báo bằng nút X bên góc phải của bảng thông báo*

Giúp đỡ về update dữ liệu trên database C#

  • Thread starter Thread starter dhl012
  • Ngày gửi Ngày gửi

dhl012

C O N T R A
Tham gia ngày
21/1/07
Bài viết
1,755
Reaction score
244
Mã:
        public void CapNhatSach(SachDTO sDto)
        {
            OleDbConnection cn;
            cn = DataProvider.ConnectionData();
            string strSQL;
            strSQL = "Update SACH Set MaTheLoai = ? and MaTacGia = ? and TenSach = ? and GiaBan = ? and SoLuongTon = ?  Where MaSach =? ";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@MaTheLoai", OleDbType.Integer);
            cmd.Parameters.Add("@MaTacGia", OleDbType.Integer);
            cmd.Parameters.Add("@TenSach", OleDbType.VarWChar);
            cmd.Parameters.Add("@GiaBan", OleDbType.Double);
            cmd.Parameters.Add("@SoLuongTon", OleDbType.Integer);
            cmd.Parameters.Add("@MaSach", OleDbType.Integer);

            cmd.Parameters["@MaTheLoai"].Value = sDto.MaTheLoai;
            cmd.Parameters["@MaTacGia"].Value = sDto.MaTacGia;
            cmd.Parameters["@TenSach"].Value = sDto.TenSach;
            cmd.Parameters["@GiaBan"].Value = sDto.GiaBan;
            cmd.Parameters["@SoLuongTon"].Value = sDto.SoLuongTon;
            cmd.Parameters["@MaSach"].Value = sDto.MaSach;
            cmd.ExecuteNonQuery();
            cn.Close();
        }

Mình có đoạn code trên, đoạn code không có gì sai. Nhưng khi cập nhật dữ liệu. MaTheLoai ở dòng sách được cập nhật, sau khi cập nhật nó bằng 0 hoặc -1.
Mình không biết lỗi gì xảy ra. Nếu đem đoạn code trên qua một solutionkhác thì chạy đúng.
Chẳng là mình và bạn mình cùng làm 1 đề tài, 2 đứa code khác nhau nhưng những đoạn code cơ bản như trên thì chắc ai cũng giống ai.
Bài bạn mình dùng datatable làm datasource cho dataGridview và có lỗi như trên. Còn bài mình dùng List để hiển thị lên dataGridView và chạy ngon lành. Có lẽ đó là sự khác biệt duy nhất giữa 2 bài. Nên không biết nó có liên quan gì tới lỗi hay không?
 
Mã:
        public void CapNhatSach(SachDTO sDto)
        {
            OleDbConnection cn;
            cn = DataProvider.ConnectionData();
            string strSQL;
            strSQL = "Update SACH Set MaTheLoai = ? and MaTacGia = ? and TenSach = ? and GiaBan = ? and SoLuongTon = ?  Where MaSach =? ";
            OleDbCommand cmd = new OleDbCommand(strSQL, cn);
            cmd.Parameters.Add("@MaTheLoai", OleDbType.Integer);
            cmd.Parameters.Add("@MaTacGia", OleDbType.Integer);
            cmd.Parameters.Add("@TenSach", OleDbType.VarWChar);
            cmd.Parameters.Add("@GiaBan", OleDbType.Double);
            cmd.Parameters.Add("@SoLuongTon", OleDbType.Integer);
            cmd.Parameters.Add("@MaSach", OleDbType.Integer);

            cmd.Parameters["@MaTheLoai"].Value = sDto.MaTheLoai;
            cmd.Parameters["@MaTacGia"].Value = sDto.MaTacGia;
            cmd.Parameters["@TenSach"].Value = sDto.TenSach;
            cmd.Parameters["@GiaBan"].Value = sDto.GiaBan;
            cmd.Parameters["@SoLuongTon"].Value = sDto.SoLuongTon;
            cmd.Parameters["@MaSach"].Value = sDto.MaSach;
            cmd.ExecuteNonQuery();
            cn.Close();
        }

Mình có đoạn code trên, đoạn code không có gì sai. Nhưng khi cập nhật dữ liệu. MaTheLoai ở dòng sách được cập nhật, sau khi cập nhật nó bằng 0 hoặc -1.
Mình không biết lỗi gì xảy ra. Nếu đem đoạn code trên qua một solutionkhác thì chạy đúng.
Chẳng là mình và bạn mình cùng làm 1 đề tài, 2 đứa code khác nhau nhưng những đoạn code cơ bản như trên thì chắc ai cũng giống ai.
Bài bạn mình dùng datatable làm datasource cho dataGridview và có lỗi như trên. Còn bài mình dùng List để hiển thị lên dataGridView và chạy ngon lành. Có lẽ đó là sự khác biệt duy nhất giữa 2 bài. Nên không biết nó có liên quan gì tới lỗi hay không?
Cái này là do sai câu truy vấn SQL thôi bạn. Bạn sửa:
Mã:
strSQL = "Update SACH Set MaTheLoai = ? and MaTacGia = ? and TenSach = ? and GiaBan = ? and SoLuongTon = ?  Where MaSach =? ";
Thành
Mã:
strSQL = "Update SACH Set MaTheLoai = ?, MaTacGia = ?, TenSach = ?, GiaBan = ?, SoLuongTon = ?  Where MaSach =? ";
 
ủa vậy sao 2 chương trình mình cùng dùng 1 câu truy vấn, 1 cái chạy đúng còn 1 cái chạy sai nhỉ :-?
 
Back
Top