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



关于datagrid删除记录的问题(网上答案很多,但都不够详细,还是没有帮我解决问题,请高手帮忙)


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


关于datagrid删除记录的问题(网上答案很多,但都不够详细,还是没有帮我解决问题,请高手帮忙)[已结贴,结贴人:wsbzcy]
发表于:2007-10-27 11:23:28 楼主
我写的代码如下:
aspx代码:
<asp:buttoncolumn   text="&lt;img   border=0   alt='删除'   src=../index/images/delete.gif&gt;"
                                    headertext="删除"
                                    buttontype="linkbutton"  
                                    headerstyle-forecolor="#ffffff"
                                    commandname="delete_click"   />  


aspx.vb代码:
protected   sub   delete_click(byval   sender   as   object,   byval   e   as   system.web.ui.webcontrols.datagridcommandeventargs)
                dim   strid   =   e.item.cells(0).text
                dim   myconn   as   oledbconnection,   mycmd   as   oledbcommand,   mysql   as   string
                myconn   =   new   oledbconnection(configurationmanager.appsettings("accessstring")   &   system.web.httpcontext.current.server.mappath(configurationmanager.appsettings("database")))
                myconn.open()

                mysql   =   "delete   *   from   equipment   where   c_id="   &   strid
                mycmd   =   new   oledbcommand(mysql,   myconn)
                mycmd.EXECutenonquery()
                myconn.close()
end   sub
请各位高手帮忙
发表于:2007-10-27 13:42:431楼 得分:0
vb   的不会     帮顶了
发表于:2007-10-27 15:14:382楼 得分:0
不知道你是什么问题?
我写了个例子。你看下.   c#的
c# code
protected void gridview1_rowdeleting(object sender, gridviewdeleteeventargs e) { datatable dt = createdata(); string delstr = gridview1.rows[e.rowindex].cells[0].text; datarow dr = dt.rows.find(delstr); if (dr != null) dt.rows.remove(dr); gridview1.datasource = dt; gridview1.databind(); }
发表于:2007-10-27 15:24:543楼 得分:0
先读,再删,再读,就实现了
发表于:2007-10-27 15:33:574楼 得分:0
这个例子百试百灵
public   void   dgd_delete(object   sender,datagridcommandeventargs   e)
{
string   strconn=configurationsettings.appsettings["dsn"];
sqlconnection   cn=new   sqlconnection(strconn);
sqlcommand   cm=new   sqlcommand("delete   from   users   where   uid=@uid",cn);
cm.commandtype=commandtype.storedprocedure;
cm.parameters.add(new   sqlparameter("@uid",sqldbtype.varchar,50));
cm.parameters["@uid"].value=this.dgd_u.datakeys[(int)e.item.itemindex];
cn.open();
cm.EXECutenonquery();
this.dgd_u.edititemindex=-1;
cn.close();
gridbind();
}
发表于:2007-10-27 15:48:565楼 得分:0
取到记录id没问题吧?能取id不就可以执行删除命令了?
发表于:2007-10-27 22:47:366楼 得分:0
delete   *   from   equipment   where   c_id="   &   strid  
有delete   *   from这样的sql语句写法么?
delete   from   equipment   where   c_id="   &   strid   &   "
发表于:2007-10-28 10:59:297楼 得分:0
        protected   void   gridview1_rowdeleting(object   sender,   gridviewdeleteeventargs   e)
        {
                string   id   =   gridview1.datakeys[e.rowindex].value.tostring();
                string   querystr   =   "delete   from   customers   where   customerid='"   +   id   +   "'";
                sqlconnection   con   =   new   sqlconnection(constr);
                sqlcommand   cmd   =   new   sqlcommand(querystr,con);
                try
                {
                        con.open();
                        cmd.EXECutenonquery();
                        binddata();
                        response.write(" <script> alert('成功删除'); </script> ");
                }
                catch   (exception   ex)
                {
                        response.write(" <script> alert('删除有误,请检查该表是否与其他表有约束'); </script> ");
                }
                finally
                {
                        con.dispose();
                }
        }
发表于:2007-10-28 11:07:078楼 得分:0
(1)什么数据库?access的delete后面有星号,sql   server等则没有星号。
(2)id字段是整型还是字符串,如果是字符串,两边要加单引号。
(3)执行完sql语句要重新绑定datagrid,否则显示的还是旧数据。
(4)错误信息是什么,如果要删除的数据是一个外键参照的主键,又没有设置级联删除的话,删除会失败。
(5)建议用gridview,只要一个sql语句,不用写一行代码即可实现。
发表于:2007-10-28 11:26:579楼 得分:0
vb的代码什么时候看都那么难看
发表于:2007-10-29 22:23:5210楼 得分:50
<!--在datagrid控件里添加一个"ondeletecommand">
<asp:datagrid   id="mygrid"   runat="server"
                                        ......
                                        ondeletecommand="delete_click"
                                        autogeneratecolumns="false"
                                        .....>
        <columns>
<!--如果是自定义字段,那就增加一个id,传给vb代码-->
            <asp:boundcolumn   datafield="id"   visible="false">
<!--在增加一个删除链接(按钮)-->
            <asp:buttoncolumn   text=   " <img   src='../index/images/delete.gif'   onclick='javascript:return   delaction()'   border='0'> "   commandname="delete"   headertext="操作"   headerstyle-forecolor="#ffffff"   />
        </columns>
</asp:datagrid>

另外::javascript:return   delaction()是一个javascript的验证,提示用户是否确定删除,其他的应该看得懂了吧?




快速检索

最新资讯
热门点击