# Trung tâm xử lý sự cố > Hỏi-Đáp về Lập trình >  Về Các đoạn lệnh trong Visual C# 2008

## nhimbien12

```
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;

namespace quanlythuvien
{
    public partial class capnhatsach : form
    {
        public capnhatsach()
        {
            initializecomponent();
        }
        class.clsdatabase cls = new quanlythuvien.class.clsdatabase();
        private void capnhatsach_load(object sender, eventargs e)
        {
            cls.loaddata2datagridview(datagridview1, "select *from tblsach");
            cls.loaddata2combobox(cbomatg, "select matg from tbltacgia");
            cls.loaddata2combobox(cbomanxb, "select manxb from tblnxb");
            cls.loaddata2combobox(cbomalv, "select malv from tbllinhvuc");
            cls.loaddata2combobox(cbotenlv, "select tenlv from tbllinhvuc");
            cls.loaddata2combobox(cbotentg,"select tentg from tbltacgia");
            cls.loaddata2combobox(cbotennxb,"select tennxb from tblnxb");
        }

        private void button1_click_1(object sender, eventargs e)
        {
            try
            {
                string strinsert = "insert into tblsach(masach,tensach,matg,manxb,malv,namxb,sotrang,soluong,sosachhong,ngaynhap,ghichu) values ('" + txtmasach.text + "','" + txttensach.text + "','" + cbomatg.text + "','" + cbomanxb.text + "','" + cbomalv.text + "','" + txtnamxb.text + "','" + txtsotrang.text + "','" + txtsoluong.text + "','" + txtsachhong.text + "','" + maskedtextbox1.text + "','" + richtextbox1.text + "')";
                cls.thucthisqltheopkn(strinsert);
                cls.loaddata2datagridview(datagridview1, "select *from tblsach");
            }
            catch { messagebox.show("trùng mã"); };
        }

        int dem = 0;
        string masach;
        private void button2_click(object sender, eventargs e)
        {
            if (dem == 0)
            {
                masach = txtmasach.text;
                dem = 1;
                button1.enabled = false;
                button3.enabled = false;
            }
            else
            {
                string strupdate = "update tblsach set masach='" + txtmasach.text + "',tensach='" + txttensach.text + "',matg='" + cbomatg.text + "',manxb='" + cbomanxb.text + "',malv='" + cbomalv.text + "',namxb='" + txtnamxb.text + "',sotrang='" + txtsotrang.text + "',soluong='" + txtsoluong.text + "',sosachhong='" + txtsachhong.text + "',ngaynhap='" + maskedtextbox1.text + "',ghichu='" + richtextbox1.text + "' where masach='" + masach + "'";
                cls.thucthisqltheopkn(strupdate);
                cls.loaddata2datagridview(datagridview1, "select *from tblsach");
                button1.enabled = true;
                button3.enabled = true;
                dem = 0;
                messagebox.show("sửa thành công");
            }
        }

        private void datagridview1_cellclick(object sender, datagridviewcelleventargs e)
        {
            try
            {
                txtmasach.text = datagridview1.rows[e.rowindex].cells[0].value.tostring();
                txttensach.text = datagridview1.rows[e.rowindex].cells[1].value.tostring();
                cbomatg.text = datagridview1.rows[e.rowindex].cells[2].value.tostring();
                cbomanxb.text = datagridview1.rows[e.rowindex].cells[3].value.tostring();
                cbomalv.text = datagridview1.rows[e.rowindex].cells[4].value.tostring();
                txtnamxb.text = datagridview1.rows[e.rowindex].cells[5].value.tostring();
                txtsotrang.text = datagridview1.rows[e.rowindex].cells[6].value.tostring();
                txtsoluong.text = datagridview1.rows[e.rowindex].cells[7].value.tostring();
                txtsachhong.text = datagridview1.rows[e.rowindex].cells[8].value.tostring();
                maskedtextbox1.text = datagridview1.rows[e.rowindex].cells[9].value.tostring();
                richtextbox1.text = datagridview1.rows[e.rowindex].cells[10].value.tostring();
            }
            catch { };
        }

        private void button3_click(object sender, eventargs e)
        {
            if (messagebox.show("bạn có muốn xóa không?(y/n)", "delete", messageboxbuttons.yesno, messageboxicon.question) == dialogresult.yes)
            {
                string strdelete = "delete from tblsach where masach='" + txtmasach.text + "'";
                cls.thucthisqltheoketnoi(strdelete);
                cls.loaddata2datagridview(datagridview1, "select *from tblsach");
                messagebox.show("xóa thành công !!!");
            }
        }

        private void txtsachhong_keypress(object sender, keypresseventargs e)
        {
            if (e.keychar >= '0' && e.keychar <= '9')
                e.handled = false;
            else
                e.handled = true;
        }

        private void cbotenlv_selectedindexchanged(object sender, eventargs e)
        {
            cbomalv.selectedindex = cbotenlv.selectedindex;
        }

        private void cbomalv_selectedindexchanged(object sender, eventargs e)
        {
            cbotenlv.selectedindex = cbomalv.selectedindex;
        }

        private void cbotentg_selectedindexchanged(object sender, eventargs e)
        {
            cbomatg.selectedindex = cbotentg.selectedindex;
        }

        private void cbomatg_selectedindexchanged(object sender, eventargs e)
        {
            cbotentg.selectedindex = cbomatg.selectedindex;
        }

        private void cbotennxb_selectedindexchanged(object sender, eventargs e)
        {
            cbomanxb.selectedindex = cbotennxb.selectedindex;
        }

        private void cbomanxb_selectedindexchanged(object sender, eventargs e)
        {
            cbotennxb.selectedindex = cbomanxb.selectedindex;
        }

    }
}
```

cho mình hỏi tại sao cái này mình muốn thêm sách vào thì nó báo trùng mã vậy 



```

using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;

namespace quanlythuvien
{
    public partial class capnhattg : form
    {
        public capnhattg()
        {
            initializecomponent();
        }
        class.clsdatabase cls = new quanlythuvien.class.clsdatabase();

        private void capnhattg_load(object sender, eventargs e)
        {
            cls.loaddata2datagridview(datagridview1,"select *from tbltacgia");
        }

        private void button1_click(object sender, eventargs e)
        {
            try
            {
                string strinsert = "insert into tbltacgia(matg,tentg,gioitinh,diachi,ghichu) values ('" + txtmatg.text + "','" + txthoten.text + "','" + cbogioitinh.text + "','" + txtdiachi.text + "','" + richtextbox1.text + "')";
                cls.thucthisqltheopkn(strinsert);
                cls.loaddata2datagridview(datagridview1, "select *from tbltacgia");
                messagebox.show("thêm thành công");
            }
            catch { messagebox.show("trùng mã"); };           
        }

        private void button3_click(object sender, eventargs e)
        {
            if (messagebox.show("bạn có muốn xóa không?(y/n)", "delete", messageboxbuttons.yesno, messageboxicon.question) == dialogresult.yes)
            {
                try
                {
                    string strdelete = "delete from tbltacgia where matg='" + txtmatg.text + "'";
                    cls.thucthisqltheoketnoi(strdelete);
                    cls.loaddata2datagridview(datagridview1, "select *from tbltacgia");
                    messagebox.show("xóa thành công !!!");
                }
                catch { messagebox.show("phải xóa những thông tin liên quan đến tác giả này trước"); };
            }
        }

        private void datagridview1_cellclick(object sender, datagridviewcelleventargs e)
        {
            try
            {
                txtmatg.text = datagridview1.rows[e.rowindex].cells[0].value.tostring();
                txthoten.text = datagridview1.rows[e.rowindex].cells[1].value.tostring();
                cbogioitinh.text = datagridview1.rows[e.rowindex].cells[2].value.tostring();
                txtdiachi.text = datagridview1.rows[e.rowindex].cells[3].value.tostring();
            }
            catch { };
        }
        int dem = 0;
        string matg;
        private void button2_click(object sender, eventargs e)
        {

            if (dem == 0)
            {
                matg = txtmatg.text;
                dem = 1;
                button1.enabled = false;
                button3.enabled = false;
            }
            else
            {
                try
                {
                    string strupdate = "update tbltacgia set matg='" + txtmatg.text + "',tentg='" + txthoten.text + "',gioitinh='" + cbogioitinh.text + "',ghichu='" + richtextbox1.text + "' where matg='" + matg + "'";
                    cls.thucthisqltheopkn(strupdate);
                    cls.loaddata2datagridview(datagridview1, "select *from tbltacgia");
                    button1.enabled = true;
                    button3.enabled = true;
                    dem = 0;
                    messagebox.show("sửa thành công");
                }
                catch { messagebox.show("trùng mã"); };               
            }
        }
    }
}
```

ai biết thì sửa hộ mình cái nhé mình đang họ nên mong các bạn giúp đỡ

----------


## bao245

bạn post đầy đủ bài được kô , chỗ xem được nửa câu lệnh kô biết nửa còn lại như thế nào thì khó tìm ra lỗi lắm

----------


## yenyen1234

đây là toàn bộ bài có code và datbase 
dùng sql2005 và c#2008
là bài mình sưu tập trên mạng tập tành sửa thôi. mấy cái kia mình mày mò sửa được còn cái này sửa mãi mà nó vẫn báo trùng mã chả hiểu làm sao :bawling::down:
bạn giúp mình sửa nhé

link của nó đây


```
http://www.mediafire.com/?bz4476apksejs46
```

----------


## yeuyeu90

theo như code của bạn thì bạn xem lại câu insert đi trường sotrang,soluong kiểu int cơ mà .bạn chỉ cần bỏ cái dấu ' ' rồi convert thành kiểu int là được . chắc chỉ sai lỗi đấy thôi bạn thử sửa lại xem có đúng không .

----------


## chothuevanphonggiare

bạn sửa giùm đi rồi post đoạn code đó lên được không vậy

----------


## thuctapseonx01

private void button1_click_1(object sender, eventargs e)
{
try
{
string strinsert = "insert into tblsach(masach,tensach,matg,manxb,malv,namxb,sotra  ng,soluong,sosachhong,ngaynhap,ghichu) values ('" + txtmasach.text + "','" + txttensach.text + "','" + cbomatg.text + "','" + cbomanxb.text + "','" + cbomalv.text + "','" + txtnamxb.text + "'," + convert.toint32(txtsotrang.text) + "," + convert.toint32(txtsoluong.text) + ",'" + txtsachhong.text + "','" + maskedtextbox1.text + "','" + richtextbox1.text + "')";
cls.thucthisqltheopkn(strinsert);
cls.loaddata2datagridview(datagridview1, "select *from tblsach");
}
catch { messagebox.show("trùng mã"); };
}
mình không cài visual 2008 nên chưa thử kiểm tra bạn thử kiểm tra xem còn lỗi đấy không.

----------


## tuylasg

vẫn thế chán quá đi sửa lại rồi mà nó vẫn báo *trùng mã* chắc điên quá thôi
em giúp em sửa cái cập nhật sách này đi

----------


## teenhotvip

bạn nên xem lại method thucthisqltheopkn trong file clsdatabase.cs , method đấy của bạn viết dùng để insert mà bạn lại dùng sqldataadapter thì sẽ sinh ra lỗi . qua kinh nghiệm của mình các câu lệnh insert,update,delete sử dụng câu lệnh sqlcommand còn sqldataadapter dùng cho câu lệnh select.
mình khuyên bạn nếu có bị lỗi gì thì nên bỏ try{}catch{}; ra để tìm hiểu xem thực sự lỗi gì chứ bạn để try{}catch thì không biết lỗi thực sự là gì đâu. 
bài của bạn nếu bỏ try{}catch ra thì sẽ lỗi chủ yếu ở 1 trong 2 phương thức này:
cls.thucthisqltheopkn(strinsert);
cls.loaddata2datagridview(datagridview1, "select *from tblsach");
bạn kiểm tra từng method tương ứng bên file clsdatabase.cs thì sẽ không có vấn đề gì đâu.

----------

