2011-01-23 59 views
0

我已經在這個項目上做了很多搜索,但我似乎找不到任何人這樣做了。我確定這是一個常見問題,但我無法找出正確的關鍵字來搜索解決方案,所以我很抱歉,如果這是重複的。使用DataSet獲取objectdatasource中最後一個插入項目的ID

我有一個數據集,其中使用了生成插入,更新和刪除語句以及刷新數據表選項,以便我可以在使用ObjectDatasource時檢索最後插入的ID。然而,當我處理ObjectDataSource-Inserted方法時,我得到1作爲返回值,我假設它是受影響的行。我不想那樣,我想要這個ID,以便我可以在我的代碼中使用它。

我查看了插入方法的生成代碼,它在插入後做了一個SELECT,但它返回的是整行而不是ID,所以我怎麼才能在這一行檢索值?

+0

實際上有一個ReturnValue返回-1 ...該項目被插入,但無論如何我總是得到1的ReturnValue! – SelAromDotNet 2011-01-23 23:15:29

回答

0

我過去做過的事情是使用靜態方法進行CRUD操作。

<ObjectDataSource runat="server" ID="_odsThingy" 
     TypeName="Northwind.ThingyFactory" SelectMethod="Select" InsertMethod="Insert"> 
    <SelectParameters> 
     <SessionParameter Name="id" SessionField="thingyId" /> 
    </SelectParameters> 
</ObjectDataSource> 

和C#代碼:

class ThingyFactory { 
    public static DataSet Select(int id, /* other criteria for selecting? */) { 
     // ... 
    } 

    public static int Insert(/* values required for insert */) { 
     // do insert & return the ID 
    } 
} 

我沒試過編譯此代碼,所以我道歉,如果我犯了一些錯誤。由於獲得了控制權,這種特殊模式使我擺脫了一些困境。請閱讀this article以瞭解更多關於它如何工作的細節。

相關問題