2012-05-09 1 views
1

테이블 직원의 기본 키가 있습니다. 나는 그것을 "IDS"라고 명명했다. IDS 데이터는 다음과 같습니다. K-00001, K-00002 등 이 IDS 자동 생성 기능은 ASP.NET에서 트리거 또는 함수를 사용하지 않고 자동 생성합니까?ASP.NET의 DB에서 자동 생성 된 ID

  DBRabbit _db = new DBRabbit(); 
      Employee k = new Employee(); 
      var row = (from r in _db.Employees 
         orderby r.IDS descending 
         select r).FirstOrDefault(); 
      var n = row.IDS.PadLeft(5, '0');  
      IDSText.Text = n.ToString(); 

그리고 + 1로 'N'을 추가하는 방법을 생각하는 동안은 다음과 같이 쓸 때 때문에 .. 붙어 :

내가 이렇게 내 코드를 수행 한

var n = row.IDS.PadLeft(5, '0')+1; 

(마지막 레코드는 K-00010입니다.)
결과는 K-000101 DB를 변경하거나 SQL 서버 스크립트/쿼리를 사용하지 않고 K-00011로 만드는 방법은 무엇입니까?

답변

5

James가 말한대로 IDS 열을 자동으로 증가시키는 것이 좋습니다. 공식 수정 : 당신이 K-00010, K-00011 또 다른 열이해야하는 경우 또한, ... 나는

'K-' + cast(right([IDS]+(100000),(5)) as varchar(5)) 

편집은 다음과 같은 공식으로 계산 된 열을 사용하도록 건의 할 것입니다. 머피와 함께 연주 할 때 거의 보장 된 기회에 대해 장난의 많은

+1

+1 : 좋은 제안입니다. 내가 특히 좋아하는 것은 구현의 용이성이다. OP는 전체 디자인을 망쳐 놓지 않고도이를 구현할 수 있습니다. –

+0

절대적으로 쉬운 방법입니다. – Kaf

+0

자동 증가로 변경하고, int로 변경 한 다음 어떻게 "캐스팅"을 사용합니까? 그것은 asp 또는 sql 서버에 사용됩니까? –

0

시도 :

var n = (Convert.ToInt32(row.IDS) + 1).ToString().PadLeft(5, '0'); 
+0

K-를 앞쪽으로 벗겨야 만합니다. 그는 곧 "인텔리전트"넘버 트릭을하려고합니다. –

+0

예, "K"를 잊었습니다 ...... – MikeTWebb

2

가 열 자동 증가합니다. 경험적으로 말하자면, 결코 수작업으로 기본 키를 증가시켜야합니다. 이것은 단지 문제를 간청하는 것입니다. 올바른 순서의 이벤트가 해당 논리를 손상시킵니다.

+2

"문제"는 "끔찍하고 끔찍한 괴롭힘"이라고 말하는 좋은 방법입니다. +1 =) – jadarnel27

+1

실제로 이런 종류의 일을 본 횟수를 잃어 버렸습니다. 그것은 일어나기를 기다리고있는 실수 일뿐입니다. –

1

그냥 자동 INC 정수 곳 (우선하여 DB)가 다음

String.Concat("K-",KeyValue.ToString().PadLeft(5,'0'); 

당신의 방법으로 의심 할 여지없이 매우 의미있는 표현을 구축하다 너의 머리. 당신이하는 일을 그냥하지 마십시오.

0

위의 경우 자바 스크립트를 사용하고 있습니까? 그렇다면하면

VAR을 이용하려고 N =로 .toString(). PadLeft (5, 0)

substirng 함수는 제거한다 (번호 ((2)) + 1 row.ids.substring) "k-"