Re: [問題] ASP.NET中的ObjectDatSource刪除資料的 …

看板C_Sharp (C#)作者 (i miss you)時間19年前 (2006/04/11 22:50), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《mygod1220 (晴天)》之銘言: : VS2005中有一個ObjectDataSource元件 : 我現在想要利用這個元件從Table中刪除資料 : 刪除資料需要對應的UID作為參數 : 但是我不知道怎麼在script的部份將參數傳給負責刪除的函式 : CODE如下,請大家幫忙看看 : 非常感謝 : [這是下刪除按鈕後的動作] : protected void DelMember(object sender, EventArgs e) : { : TextBox id = (TextBox)FindControl("txbMemberID"); : 我先在Itemtemplate中將UID放在txbMemberID中 : ObjectDataSource1.DeleteParameters.Add("MemberID",id.Text); : 上面這列指令執行時會發生NullRefernceException : ObjectDataSource1.Delete(); : } 我看到兩個問題(第一個我不是很確定) 1.妳已經在標記(tag, <xxx>)中幫ObjectDataSource1加入了一個名稱為"MemberId" 的Paramter,所以你的ObjectDataSource1.DeleteParameters.Add("MemeberID"..) 是不合規則的。妳應該用ObjectDataSource1.DeleteParameters["MemverID"].Defa ultValue = id.Text作為設定該Parameter物件預設值的寫法 2.發生了NullReferenceException代表有變數指標沒有指到東西, 問題我猜想應該在於 TextBox id = ....;那行, FindControl應該是找不到妳指定id為txbMemberID的Text Box : [這是DataSource的宣告] : <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetMembers" : DeleteMethod="DeleteMember" TypeName="MemberDetails"> : <DeleteParameters> : <asp:Parameter Name="MemberID" /> : </DeleteParameters> : <SelectParameters> : <asp:Parameter DefaultValue="" Name="filter" Type="String" /> : </SelectParameters> : </asp:ObjectDataSource> : [這是MemberDetial.cs中的DeleteMember,這邊必須要有一個UID作為參數傳入] : public static void DeleteMember(guid memberid) : { : List<MemberDetails> mlist = new List<MemberDetails>(); : DataSetTableAdapters.MemberInfoTableAdapter da = new DataSetTableAdapters.MemberInfoTableAdapter(); : da.Delete(memberid); : } -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.67.37.74

04/12 17:50, , 1F
再次感謝@@
04/12 17:50, 1F
文章代碼(AID): #14Ey8-Et (C_Sharp)
文章代碼(AID): #14Ey8-Et (C_Sharp)