Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Update trên từng row trong DataGridView!

  1. #1
    Ngày gia nhập
    12 2008
    Bài viết
    80

    Angry Update trên từng row trong DataGridView!

    Cho mình hỏi mình muốn update dữ liệu trên từng row trong DataGridView như thế nào :
    Code:
    public void Update_CTHD(int id, 
                                    String maloaithe, 
                                    String mahd, 
                                    double giamua, 
                                    int slmua, 
                                    double thanhtien)
            {
                String sql = String.Format("UPDATE CHITIETMUAHANG SET MALOAITHE = [@maloaithe], MAHDMUA = [@mahd], GIAMUA = [@giamua], SLMUA = [@slmua], THANHTIENMUA = [@thanhtien]" +
                                            " WHERE (ID=[@id])");
                OleDbCommand cmd = new OleDbCommand(sql);
                cmd.Parameters.Add("ID", OleDbType.Integer).Value = id;
                cmd.Parameters.Add("MALOAITHE", OleDbType.VarChar).Value = maloaithe;
                cmd.Parameters.Add("MAHDMUA", OleDbType.VarChar).Value = mahd;
                cmd.Parameters.Add("GIAMUA", OleDbType.Double).Value = giamua;
                cmd.Parameters.Add("SLMUA", OleDbType.Integer).Value = slmua;
                cmd.Parameters.Add("THANHTIENMUA", OleDbType.Double).Value = thanhtien;
                m_CthdmuaData.Load(cmd);
            }
    Button Update
    Code:
    m_chitietCtrl.Update_CTHD(Convert.ToInt32(dgvCTHD.CurrentRow.Cells["colID"].Value.ToString()),
                                            dgvCTHD.CurrentRow.Cells["colLOAITHE"].Value.ToString(),
                                                dgvCTHD.CurrentRow.Cells["colHOADON"].Value.ToString(),
                                                    Convert.ToDouble(dgvCTHD.CurrentRow.Cells["colGIAMUA"].Value.ToString()),
                                                        Convert.ToInt32(dgvCTHD.CurrentRow.Cells["colSLMUA"].Value.ToString()),
                                                            Convert.ToDouble(dgvCTHD.CurrentRow.Cells["colTHANHTIEN"].Value.ToString()));
    Nhưng ko hiểu sao nó không Update xuống Database được , có phải mình duyệt qua từng row mới Update được ko? Help thanks???

  2. #2
    Ngày gia nhập
    12 2008
    Bài viết
    80

    chẳng thấy ai help vậy nè!

  3. #3
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Code:
      m_CthdmuaData.Load(cmd)
    Code trong hàm này bạn viết thế nào???

    Phải show lên để mọi người thấy và phải ghi rõ là lỗi j?
    Sống là để cho đi và ...... Nhận lại

  4. #4
    Ngày gia nhập
    12 2008
    Bài viết
    80

    Code:
    public void Load(OleDbCommand m_Sql)
            {
                m_Command = m_Sql;
                try
                {
                    m_Command.Connection = m_Connection;
                    m_DataAdapter = new OleDbDataAdapter();
                    m_DataAdapter.SelectCommand = m_Command;
                    
                    this.Clear();
                    m_DataAdapter.Fill(this);
                }
                catch (OleDbException e)
                {
                    MessageBox.Show("Dữ liệu không tồn tại!\nLỗi: " + e.Message, "ERROR", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error);
                }
            }
    Chẳng hiểu bị gì cũng chẳng có báo lỗi nhưng update ko xuống database được mặc dù insert và delete thì ok

  5. #5
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Insert và delete bạn đều dùng hàm này hả?

    Ủa sao lại gán nó vào tên cột luôn ta?? Bạn phải gắn vào biến giá trị chứ?

    Code:
    cmd.Parameters.Add("@id", OleDbType.Integer).Value = id;
    Sống là để cho đi và ...... Nhận lại

  6. #6
    Ngày gia nhập
    12 2008
    Bài viết
    80

    Mặc định Update trên từng row trong DataGridView!

    uh inesert và delete đều dùng lệnh như vậy query khác thôi hoạt động bình thường mà ko hiểu sao cái update nó ko báo lỗi vẫn update nhưg dữ liệu ko update xuống database,

  7. #7
    Ngày gia nhập
    12 2008
    Bài viết
    80

    Delete
    Code:
    public void Delete_CTHD(int id)
    
            {
                String sql = String.Format("DELETE FROM CHITIETMUAHANG WHERE ID=[@id]");
                OleDbCommand cmd = new OleDbCommand(sql);
                cmd.Parameters.Add("ID",OleDbType.Integer).Value=id;
                m_CthdmuaData.Load(cmd);
            }
    Insert
    Code:
    public void Insert_CTHD(int id,Object loaithe,String mahoadon, Object giatien, Object soluong, Object thanhtien)
            {
                string sql = String.Format("INSERT INTO CHITIETMUAHANG (ID,MALOAITHE,MAHDMUA,GIAMUA,SLMUA,THANHTIENMUA) VALUES(@id,@loaithe,@mahoadon,@giatien,@soluong,@thanhtien)");
                OleDbCommand cmd = new OleDbCommand(sql);
                cmd.Parameters.Add("ID", OleDbType.Integer).Value = id;
                cmd.Parameters.Add("MALOAITHE",OleDbType.VarWChar).Value = loaithe;
                cmd.Parameters.Add("MAHDMUA", OleDbType.VarWChar).Value = mahoadon;
                cmd.Parameters.Add("GIAMUA", OleDbType.Double).Value = giatien;
                cmd.Parameters.Add("SLMUA", OleDbType.Integer).Value = soluong;
                cmd.Parameters.Add("THANHTIENMUA", OleDbType.Double).Value = thanhtien;
                m_CthdmuaData.Load(cmd);
    
            }

  8. #8
    Ngày gia nhập
    06 2011
    Bài viết
    277

    Mình nói trên rùi đó! Bạn coi lại code đi!

    Bạn phải truyền giá trị vô tham số chứ ko phải truyền vào Name của column như thế!

    http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters.aspx

    bạn coi ở đây nhé!!
    Sống là để cho đi và ...... Nhận lại

  9. #9
    Ngày gia nhập
    12 2008
    Bài viết
    80

    Mình đã sửa name column, sửa lại tham số cho nó không giống nhau mà vẫn ko được
    http://www.mediafire.com/?khuogejp1wf5t3l
    Đây là source của mình bạn coi dùm mình là tại sao ko hiểu nữa, mình update những cái khác thì ok mà

  10. #10
    Ngày gia nhập
    12 2008
    Bài viết
    80

    Thanks mình đã xử lý được vấn đề là cái chỗ
    Code:
    public void Update_CTHD(int id, 
                                    String maloaithe, 
                                    String mahd, 
                                    double giamua, 
                                    int slmua, 
                                    double thanhtien)
            {
                String sql = String.Format("UPDATE CHITIETMUAHANG SET MALOAITHE = [@maloaithe], MAHDMUA = [@mahd], GIAMUA = [@giamua], SLMUA = [@slmua], THANHTIENMUA = [@thanhtien]" +
                                            " WHERE (ID=[@id])");
                OleDbCommand cmd = new OleDbCommand(sql);
                cmd.Parameters.Add("ID", OleDbType.Integer).Value = id; // Cái này phải nằm phía cuối 
                cmd.Parameters.Add("MALOAITHE", OleDbType.VarChar).Value = maloaithe;
                cmd.Parameters.Add("MAHDMUA", OleDbType.VarChar).Value = mahd;
                cmd.Parameters.Add("GIAMUA", OleDbType.Double).Value = giamua;
                cmd.Parameters.Add("SLMUA", OleDbType.Integer).Value = slmua;
                cmd.Parameters.Add("THANHTIENMUA", OleDbType.Double).Value = thanhtien;
                cmd.Parameters.Add("ID", OleDbType.Integer).Value = id; // Cái này phải nằm phía cuối
                m_CthdmuaData.Load(cmd);
            }

Các đề tài tương tự

  1. cách update ngay trên DataGridView xuống CSDL mà không cần nhấn nút Update
    Gửi bởi heoxinh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 18
    Bài viết cuối: 21-07-2015, 03:13 PM
  2. Update dữ liệu trực tiếp trên DataGridView?
    Gửi bởi nth4 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 3
    Bài viết cuối: 25-02-2012, 08:34 PM
  3. Trả lời: 9
    Bài viết cuối: 29-08-2011, 04:34 PM
  4. Database Update dữ liệu đã edit trên datagridview vào DB
    Gửi bởi tambeotb4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 22-05-2011, 05:36 PM
  5. Giải pháp update trực tiếp nhiều dòng trên DataGridView ???
    Gửi bởi nth4 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 10-06-2007, 03:45 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn