這似乎是我正在做的一件非常基本的事情,但我正在試圖讓它工作。如何使用TableAdapter更新DataSet的單個表,而無需對錶名進行硬編碼?
我的情況是這樣的:我有一個包含大量查找表的項目,並且我在所有這些查找表中表示了一個類型化的DataSet,其中包含每個查找的TableAdapters。我爲這些查找表設計了一個編輯器,可以一次編輯其中的一個。我的前端是用VB和WinForms編寫的,後端是一個SOAP Web服務;我可以成功地將更改傳遞給DataSet返回到Web服務,但無法找到使用TableAdapter更新已更改的單個表的方法。
我想要做的是通過將表的名稱與DataSet一起發送回Web服務,然後使用動態名稱引用TableAdapter,爲更新的DataTable實例化適當的TableAdapter。實例化一個TableAdapter的正常方式是這樣的:
Dim ta As New dsLookupsTableAdapters.tlkpMyTableTableAdapter
我想要做的就是這個,當然這是行不通的:
strTableName = "tlkpMyTable"
Dim ta As New dsLookupsTableAdapters(strTableName & "TableAdapter")
有什麼辦法來實現這一目標,還是我完全採取錯誤的做法?我的另一種選擇是爲每個表編寫單獨的代碼,我寧願避免!
因爲它是VB.NET,所以避免反射並使用CallByName(適配器,「更新」,CallType.Method,Nothing) – AMissico
感謝球員們,我們做到了。對不起,我花了很長時間纔回到這個問題 - 我一直忙於更緊急的項目其他方面。不幸的是,我似乎無法接受答案 - 任何想法爲什麼? – Billious
嗯 - 只是發現在賞金到期後你不能接受答案,這有點煩人。伊利亞,你的回答是我會接受的答案,但是在賞金到期後纔得到答覆 - 無論如何,謝謝! – Billious