2016-12-07 7 views
-3

아래의 솔루션을 사용했지만 특정 행을 삭제할 때마다 번호가 중복됩니다.C에서 데이터베이스에서 자동 생성 번호 #

코드 :

void AutoGenerateId() 
{ 
    SqlConnection cn = new SqlConnection(ConString); 
    string Query = "select COUNT(*) from StudentDetails"; 
    SqlCommand cd = new SqlCommand(Query, cn); 
    try 
    { 
     cn.Open(); 
     int count = Convert.ToInt16(cd.ExecuteScalar()) + 1; 
     txtStudentId.Text = count.ToString(); 
     txtStudentId.Enabled = false; 
    } 
    catch (Exception ex) 
    { 
     lblErrorMsg.Text = ex.ToString(); 
    } 
    finally 
    { 
     cn.Close(); 
    } 
} 
+1

나는 당신이 묻는 것을 조금도 모른다. ... – Siyual

+0

나는 너에게 묻고있는 것을 얻는다. (잠재적 인) 다음 증분 값을 얻으려고하는 경우, 카운트보다는 'SELECT IDENT_CURRENT (StudentDetails) + 1'을 사용하십시오. 나는 당신이 저지르기 전에 그것이 바뀔 수 있기 때문에 잠재력을 말합니다. 또한 ID 열이 필요합니다. 그렇지 않으면 IDENTITY가 아닌 경우 MAX (Id)를 사용하십시오. –

+2

또는 그냥 ID를 사용하십시오. INT IDENTITY (1,1) – Steve

답변

3

당신은 ID를 생성하는 sequencer를 사용하고 다음을 얻을 수 있습니다.

예 : 행을 제거 할 경우에도

string query = "SELECT NEXT VALUE FOR Student.Sequence;" 

이것은, 고유 번호를 반환합니다.

+0

잘못된 개체 이름 'Std_Info.Id' – WeeZy