Я использую набор данных.У меня есть табличный адаптер с именем PackageTableAdapter , который содержит метод с именем InsertPackage .
INSERT INTO [dbo].[Packages] ([UserID], [Name]) VALUES (@UserID, @Name)
//Return the PackageID value for the newly created record...
SELECT SCOPE_IDENTITY()
Этот табличный адаптер используется классом среднего уровня, скод ниже:
private PackagesTableAdapter _packagesTableAdapter = null;
protected PackagesTableAdapter Adapter
{
get
{
if (_packagesTableAdapter == null)
_packagesTableAdapter = new PackagesTableAdapter();
return _packagesTableAdapter;
}
}
public bool AddPackage(string PackageName)
{
// Create a new PackageRow instance
Album.PackagesDataTable packages = new AlbumCongo.PackagesDataTable();
Album.PackagesRow package = packages.NewPackagesRow();
// Add the new package
package.Name = PackageName;
packages.AddPackagesRow(package);
int rowsAffected = Adapter.Update(packages);
// Return true if precisely one row was inserted,
// otherwise false
return rowsAffected == 1;
}
Как перехватить первичный ключ вновь созданного пакета (тот, который должен возвращаться оператором SELECT SCOPE_IDENTITY () )?
EDIT
Вместо того, чтобы возвращать значение bool, я хотел бы вернуть пользовательский объект, который содержит как значение bool, так и int, представляющий идентификатор вновь созданной строки.
Спасибо за помощь.