این کد رو امتحان کن. شاید کارت راه بیافته.
private void table_1DataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
var max = 0;
for (int i = 0; i < table_1DataGridView.Rows.Count; i++)
{
if (Convert.ToInt32(table_1DataGridView[0, i].Value) > max && i != e.RowIndex)
max = Convert.ToInt32(table_1DataGridView[0, i].Value);
}
table_1DataGridView[0, e.RowIndex].Value = max + 1;
}
اگه نباید کدت توسط داوطلب تغییر کنه٬ چرا readOnly نیست؟
اگه مهم نیست که حتماً پشت سر هم باشند ID ها٬ چرا از AutoIncreamet استفاده نمیکنی؟ دوستی که گفتند استفاده نکن اگه ممکنه دلایلشون رو بگن که ما هم یاد بگیریم.
و دیگه اینکه بهتره ID ت کلید باشه٬ اگه فیلد Object نباید تکراری باشه از Constraint ها استفاده کن و دیگه اینکه لزوماً فیلدت نباید کلید باشه تا بتونی به جدول های دیگه برسی ازش.
موفق باشی