Данные счетчика
Спасибо!
Спасибо!
Оо нашол: DataRow row = myDataSet.myTable.NewRow();
row["<стечтик>"] -- вот он :))
Спасибо!
какая СУБД и как добавляешь запись?
DataRow row = DataSet.MyTable.NewRow();
...
DataSet.MyTable.Rows.Add(row);
.. сохранение и т.д.
DataRow row = DataSet.MyTable.NewRow();
...
DataSet.MyTable.Rows.Add(row);
.. сохранение и т.д.
через запрос это решается так:
SELECT IDENTITY As NewValInc
после выполнения запроса на вставку даных он вернет новое значение счетчика
Ну не знаю... Перепроверил раз 5 все работает отлично
P.S. Охотник спасибо за эту штуку (SELECT IDENTITY As NewValInc), не знал такого :))
а как вызываешь?
или
[COLOR="Blue"]SELECT[/COLOR] [COLOR="Magenta"]SCOPE_IDENTITY()[/COLOR] [COLOR="Blue"]AS[/COLOR] InsertedValueIdentity
Логичнее делать вызов приведенных выше функций в хранимой процедуре производящей вставку и отдавать клиенту возвращаемое ими значение в OUTPUT параметре.
PS: SCOPE_IDENTITY и @@IDENTITY - вещи разные
UPD: актуально для SQL Server
или
[COLOR="Blue"]SELECT[/COLOR] [COLOR="Magenta"]SCOPE_IDENTITY()[/COLOR] [COLOR="Blue"]AS[/COLOR] InsertedValueIdentity
Логичнее делать вызов приведенных выше функций в хранимой процедуре производящей вставку и отдавать клиенту возвращаемое ими значение в OUTPUT параметре.
PS: SCOPE_IDENTITY и @@IDENTITY - вещи разные
UPD: актуально для SQL Server
оО спасибо, разобрался
Создай новую таблицу с полем типа "счётчик", добавь в неё пять записей, сохрани, затем удали две последние и опять сохрани. Если затем добавить новую запись, то автоинкремент ADO .Net даст значение 4, а Access - 6. Значение станет корректным только после сохранения, поскольку, если ты используешь набор данных, сгенерированный мастером, то запрос вида INSERT + SELECT * FROM TableName WHERE (ID = IDENTITY) обычно строится им автоматически.
Просто так значение IDENTITY, по идее, получить нельзя. Оно актуально лишь в контексте того запроса, в котором учавствовала операция добавления записи.