У меня есть база данных SQL Server с несколькими таблицами. У одного из них есть «ID» (первичный ключ), «Имя» и другие столбцы, которые я не буду здесь упоминать для простоты. Столбец «ID» - это автоинкремент, уникальный, и когда я добавляю какую-то строку, используя «SQL Server Management Studio», столбец «ID» увеличивается должным образом. База данных старая, и текущее автоинкрементное значение равно 1244 или около того.
Теперь я создал проект C #, который использует набор данных TYPED для работы с данными из базы данных. Моя база данных начинается пустой, набор данных заполняется с помощью адаптеров таблиц, новые строки добавляются с помощью моей программы, но есть проблема, с которой я до сих пор не сталкивался: когда моя программа добавляет новую строку в набор данных, затем обновляет базу данных (используя адаптер таблицы), " Столбец ID "в моей базе данных получает правильное автоматически увеличенное число (1245,1246 и т. Д.), НО мой столбец" ID "в наборе данных получает" -1 "," -2 "вместо этого! В чем проблема? Как я могу сказать моему набору данных использовать автоинкрементное начальное число, заданное базой данных, вместо генерации собственных НЕГАТИВНЫХ (???) номеров первичных ключей?
EDIT:
Я получаю и сравниваю строки, используя это:
dsNames.tbNamesRow[] TMP = basedataset.tbNames.Select() as dsNames.tbNamesRow[];
foreach (dsNames.tbNamesRow row in TMP)
{
string Name = row.Name;
bool Found = Name == Search;
if (CompareDelegate != null)
Found = CompareDelegate(Name, Search);
if (Found)
{
int ID = row.ID;
break;
}
}