Получить идентификатор последнего вставленного элемента в objectdatasource, используя DataSet - PullRequest
0 голосов
/ 24 января 2011

Я много раз искал ее на SO, но я не могу найти никого, кто бы это сделал.Я уверен, что это общая проблема, но я не могу найти правильные ключевые слова для поиска решения, поэтому извините, если это дубликат.

У меня есть набор данных, в котором я использовалСоздайте операторы Insert, Update и Delete, а также параметры Refresh the Data Table, чтобы я мог получить последний вставленный идентификатор при использовании ObjectDatasource.

однако при обработке ObjectDataSourceВставленный метод, я получаю 1 в качестве возвращаемого значения, которое я предполагаю, что это затронутые строки.Я не хочу этого, мне нужен идентификатор, чтобы я мог использовать его в своем коде.

Я посмотрел на сгенерированный код для метода вставки, и после вставки выполняется SELECT, но он возвращаетвся строка, а не идентификатор, так как я могу получить в этой строке, чтобы получить значение?

1 Ответ

0 голосов
/ 24 января 2011

В прошлом я использовал статические методы для операций 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
    }
}

Я не пытался скомпилировать этот код, поэтому я прошу прощения, если сделал несколько ошибок. Эта особая модель вывела меня из нескольких затруднений из-за полученного контроля. Пожалуйста, прочитайте эту статью , чтобы узнать, как это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...