您的位置:程序门 -> .net技术 -> vb.net



数据库删除问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


数据库删除问题
发表于:2007-03-25 17:50:46 楼主
请各位帮我解答一下为什么下面的程序在运行时删除不好用呢?急需,拜托!拜托!
public   class   form1
        inherits   system.windows.forms.form
        protected   bmdata   as   bindingmanagerbase
        protected   dtdata   as   datatable
        'badd   =   true   为新增
        'badd   =   false   为修改
        protected   badd   as   boolean
        '设置datagrid控件
        public   overridable   sub   setdatagrid()
                loaddata()
                '定义一个datagrid表样式
                dim   ts   as   new   datagridtablestyle
                dim   acolumntextcolumn   as   datagridtextboxcolumn
                dim   numcols   as   integer   =   dtdata.columns.count
                dim   i   as   integer
                for   i   =   0   to   numcols   -   1
                        acolumntextcolumn   =   new   datagridtextboxcolumn
                        acolumntextcolumn.mappingname   =   _
                        dtdata.columns(i).columnname
                        acolumntextcolumn.headertext   =   _
                        dtdata.columns(i).columnname
                        acolumntextcolumn.nulltext   =   " "
                        acolumntextcolumn.readonly   =   true
                        ts.gridcolumnstyles.add(acolumntextcolumn)
                next
                ts.alternatingbackcolor   =   color.lightgray
                ts.allowsorting   =   false
                ts.mappingname   =   dtdata.tablename
                datagrid1.tablestyles.clear()
                datagrid1.tablestyles.add(ts)
                dim   dv   as   dataview   =   dtdata.defaultview
                dv.allownew   =   false
                dv.allowdelete   =   false
                'dv.allowedit   =   false
                '设置数据源
                datagrid1.datasource   =   dtdata.defaultview
                bmdata   =   me.bindingcontext(dataset11,   "读者类型 ")
        end   sub
   
        '查询函数
        public   overridable   sub   searchresult()
                setdatagrid()
                datagrid1.datasource   =   dtdata.defaultview
        end   sub
        '新增函数
        public   overridable   sub   loaddata()
                dim   strfilter   as   string
                if   textbox1.text.trim.length   <>   0   then
                        strfilter   =   "where   类型   like   '% "
                        strfilter   +=   textbox1.text.trim   +   "% ' "
                end   if
                '清空dataset11
                dataset11.clear()
                sqlconnection1.connectionstring   =   database.sconn
                sqldataadapter1.selectcommand.commandtext   _
                =   "select   *   from   读者类型     "   +   strfilter
                '根据查询条件重新填充dataset11
                sqldataadapter1.fill(dataset11)
                dtdata   =   dataset11.tables( "读者类型 ")
                bmdata   =   me.bindingcontext(dataset11,   "读者类型 ")
                if   bmdata.count   <>   0   then
                        bmdata.position   =   0
                end   if
        end   sub
        public   overridable   sub   saveforadd()
                dim   dr   as   datarow   =   dataset11.tables( "读者类型 ").newrow()
                try
                        dr( "类型 ")   =   textbox1.text.trim
                        dr( "图书册书 ")   =   textbox2.text.trim
                        dr( "期刊册书 ")   =   textbox3.text.trim
                        dr( "续借次数 ")   =   textbox4.text.trim
                        dr( "限制图书 ")   =   checkbox1.checked.tostring
                        dr( "限制期刊 ")   =   checkbox2.checked.tostring
                catch   ex   as   exception
                        messagebox.show( "数据格式不正确! ")
                        exit   sub
                end   try
                try
                        dataset11.tables( "读者类型 ").rows.add(dr)
                        if   me.dataset11.haschanges   =   true   then
                                sqldataadapter1.update(dataset11)
                        end   if
                catch   ex   as   exception
                        messagebox.show( "数据添加失败! ")
                end   try
                loaddata()
                datagrid1.datasource   =   dtdata.defaultview
        end   sub
        '更新函数
        public   overridable   sub   saveforupdate()
                try
                        dim   row   as   integer
                        row   =   datagrid1.currentcell.rownumber
                        datagrid1.currentcell   =   _
                        new   datagridcell((row   +   1)   mod   bmdata.count,   0)
                        '判断是否有更新的数据
                        if   me.dataset11.haschanges   =   true   then
                                sqldataadapter1.update(dataset11)
                        end   if
                catch   ex   as   exception
                        messagebox.show( "数据修改失败! ")
                end   try
        end   sub
        '删除函数
        public   overridable   sub   deletedata()
                try
                        '删除当前行的数据
                        dataset11.tables( "读者类型 ").   _
                        rows(bmdata.position).delete()
                        if   me.dataset11.haschanges   =   true   then
                                '更新dataset11
                                sqldataadapter1.update(dataset11)
                        end   if
                catch   ex   as   exception
                        messagebox.show( "数据删除失败! ")
                end   try
        end   sub
        '清除函数
        public   overridable   sub   clear()
                me.textbox1.text   =   " "
                me.textbox2.text   =   " "
                me.textbox3.text   =   " "
                me.textbox4.text   =   " "
                me.checkbox1.checked   =   false
                me.checkbox2.checked   =   false
        end   sub
        '设置textbox函数
        public   overridable   sub   settextboxstate(byval   bstate   as   boolean)

        end   sub

        private   sub   form1_load(byval   sender   as   system.object,   byval   e   as   system.eventargs)   handles   mybase.load
                prepare()
                setdatagrid()
                settextboxstate(true)
        end   sub

        private   sub   button1_click(byval   sender   as   system.object,   byval   e   as   system.eventargs)
                searchresult()
        end   sub

        private   sub   datagrid1_currentcellchanged(byval   sender   as   object,   byval   e   as   system.eventargs)   handles   datagrid1.currentcellchanged
                try
                        if   bmdata   is   nothing   then
                                exit   sub
                        end   if
                        if   bmdata.position   <>   datagrid1.currentcell.rownumber   then
                                bmdata.position   =   datagrid1.currentcell.rownumber
                        end   if
                catch   ex   as   exception
                        messagebox.show(ex.tostring)
                end   try
        end   sub
        private   sub   settoolbarstate(byval   bstate   as   boolean)
                '设置button的是否能够单击
                toolbar1.buttons( "0 ").enabled   =   bstate
                toolbar1.buttons( "1 ").enabled   =   bstate
                toolbar1.buttons( "2 ").enabled   =   bstate
                toolbar1.buttons( "3 ").enabled   =   bstate
                toolbar1.buttons( "4 ").enabled   =   bstate
                toolbar1.buttons( "5 ").enabled   =   bstate
                toolbar1.buttons( "6 ").enabled   =   not   bstate

        end   sub

        private   sub   toolbar1_buttonclick(byval   sender   as   object,   byval   e   as   system.windows.forms.toolbarbuttonclickeventargs)   handles   toolbar1.buttonclick
                select   case   e.button.text
                        case   "首记录 "
                                '返回首记录
                                bmdata.position   =   0
                        case   "上记录 "
                                if   bmdata.position   <>   0   then
                                        bmdata.position   -=   1
                                end   if
                        case   "下记录 "
                                if   bmdata.position   <>   bmdata.count   then
                                        bmdata.position   +=   1
                                end   if
                        case   "尾记录 "
                                '返回尾记录
                                bmdata.position   =   bmdata.count
                        case   "新增 "
                                me.datagrid1.enabled   =   false
                                settextboxstate(false)
                                settoolbarstate(false)
                                badd   =   true
                                clear()
                        case   "删除 "
                                '弹出询问对话框
                                dim   dlgresult   as   dialogresult   =   _
                                              messagebox.show( "你确认删除此数据? ",   _
                                            "删除 ",   messageboxbuttons.okcancel)
                                if   dlgresult   =   dialogresult.ok   then
                                        deletedata()
                                end   if
                        case   "保存 "
                                settoolbarstate(true)
                                settextboxstate(true)
                                if   badd   =   true   then
                                        '为新增数据保存
                                        saveforadd()
                                else
                                        '为更新数据保存
                                        saveforupdate()
                                end   if
                                me.datagrid1.enabled   =   true
                        case   "退出 "
                                '关闭本窗体
                                me.close()
                        case   "修改 "
                                me.datagrid1.enabled   =   false
                                settextboxstate(false)
                                settoolbarstate(false)
                                badd   =   false
                end   select
                try
                        me.datagrid1.currentrowindex   =   bmdata.position
                catch   ex   as   exception
                end   try
        end   sub


end   class
发表于:2007-03-25 17:51:301楼 得分:0
沙发
发表于:2007-03-25 20:02:452楼 得分:0
什么叫做不好用啊?是不能用还是有时候可以用有时候不能用?
发表于:2007-03-26 08:40:063楼 得分:0
能否说具体问题


快速检索

最新资讯
热门点击