问题描述
求救各位大虾!!!前台:<asp:GridViewID="GridView1"runat="server"AutoGenerateColumns="False"DataKeyNames="Submenu_id"DataSourceID="AccessDataSource1"OnRowCommand="GridView1_RowCommand"Width="100%"><Columns>…………………………<asp:TemplateFieldHeaderText="删除"ShowHeader="False"><ItemTemplate><asp:ButtonID="Button4"runat="server"CommandName="Delete"Text="删除"/></ItemTemplate></asp:TemplateField><asp:TemplateField><ItemTemplate><asp:LabelID="Label4"runat="server"Text='<%#Eval("menu_mainid")%>'Visible="false"></asp:Label></ItemTemplate></asp:TemplateField></Columns></asp:GridView>后台CS:protectedvoidGridView1_RowCommand(objectsender,GridViewCommandEventArgse){AccessDataSourceads=newAccessDataSource();ads.DataFile="~/App_data/Ti_en_data.mdb";DataViewDorjeCMS_dv;stringid;inti;DorjeCMS_dv=(DataView)ads.Select(DataSourceSelectArguments.Empty);if(e.CommandName=="Delete"){for(i=0;i<DorjeCMS_dv.Count;i++){id=GridView1.Rows[i].Cells[6].Text;ads.UpdateCommand="UpdatemenuSetmenu_num=menu_num-1wheremenu_mainid="+Convert.ToString(id);ads.Update();}}运行后错误提示:未将对象引用设置到对象的实例。异常详细信息:System.NullReferenceException:未将对象引用设置到对象的实例。源错误:行64:if(e.CommandName=="Delete")行65:{行66:for(i=0;i<DorjeCMS_dv.Count;i++)行67:{行68:id=GridView1.Rows[i].Cells[6].Text;
解决方案
本帖最后由 djrqdjrq 于 2012-03-05 10:12:13 编辑
解决方案二:
DorjeCMS_dv没有找到。为什么不在这里去找ID呢?for(i=0;i<GridView1.Rows.Count;i++){id=GridView1.Rows[i].Cells[6].Text;ads.UpdateCommand="UpdatemenuSetmenu_num=menu_num-1wheremenu_mainid="+Convert.ToString(id);ads.Update();}
解决方案三:
调试是王道
解决方案四:
引用1楼codingr的回复:
DorjeCMS_dv没有找到。为什么不在这里去找ID呢?C#codefor(i=0;i<GridView1.Rows.Count;i++){id=GridView1.Rows[i].Cells[6].Text;ads.UpdateCommand="UpdatemenuSetmenu_num=menu_num-1wheremen……
没有明白!!!
解决方案五:
DorjeCMS_dv=(DataView)ads.Select(DataSourceSelectArguments.Empty);这句有问题删除为什么这么写?
解决方案六:
这个用触发器处理是不是会更好一些?