2010-05-15 2 views

답변

20

아마도 이런 식으로 시도 할 수 있습니까? 당신이 당신의 응용 프로그램을 단일 사용자 응용 프로그램을 만들고 싶어하지 않는

private void AddAutoIncrementColumn() 
{ 
    DataColumn column = new DataColumn(); 
    column.DataType = System.Type.GetType("System.Int32"); 
    column.AutoIncrement = true; 
    column.AutoIncrementSeed = 1000; 
    column.AutoIncrementStep = 10; 

    // Add the column to a new DataTable. 
    DataTable table = new DataTable("table"); 
    table.Columns.Add(column); 
} 
+0

데이터가있는 기존 DataTable에 추가하면 기존 행의 새 열이 자동으로 채워 집니까? – Lunyx

1

당신은 DataTable을 (또는 그 문제에 대한 프런트 엔드)에 자동 증가하지 않습니다.

자동 증가가 필요한 경우 데이터베이스에서 수행 한 다음 데이터베이스에서 생성 된 자동 증가 ID를 프런트 엔드에 검색하십시오.

단지 등 SqlDataAdapter를,도록 SqlConnection에 SqliteConnection,에 SqliteDataAdapter을 변경, 여기 내 대답을 참조하십시오 anyway see why I get this "Concurrency Violation" in these few lines of code??? Concurrency violation: the UpdateCommand affected 0 of the expected 1 records

+1

플랫 파일에서 데이터를 읽었으며 DataTable에 라인 번호를 추가해야합니다. 유효 할 때도 있고 내 앱 단일 사용자가되지 않을 수도 있습니다. – MrTelly

+0

예, 또는 출력 ..... 나는 하나의 시퀀스로 끝나야하는 여러 개의 독립적 인 읽기로 구성된 출력을 생성 중입니다. DataTable의 로컬 사용은 매우 중요합니다 ...... "단일 사용자"와 비슷한 격리입니다.하지만 전혀 똑같은 것은 아닙니다. –

0

그냥 내 두 센트. 자동 증가가, 즉 (마이클 부엔 바르게 말한대로 독립형)를 Winform 응용 프로그램에 유용합니다

DatagridView는 "키 필드"가없는 데이터를 표시하는 데 사용되는, 동일 사용할 수 있습니다 열거.

0

나는 그것 당신이 인서트를 사용하고 번호가 rearranget되지 않기 때문에 데이터 테이블을 삭제할 경우 데이터 테이블에 자동 증가를 사용하는 것이 좋습니다 것 같아요, 어떤 최종 나는 우리가 자동 증가 설명서를 사용하는 방법 작은 아이디어를 공유하지 않습니다 .

  DataTable dt = new DataTable(); 
     dt.Columns.Add("ID",typeof(int)); 
     dt.Columns.Add("Produto Nome", typeof(string)); 

     dt.Rows.Add(null, "A"); 
     dt.Rows.Add(null, "B"); 
     dt.Rows.Add(null, "C"); 

     for(int i=0;i < dt.Rows.Count;i++) 
     { 
      dt.Rows[i]["ID"] = i + 1; 
     } 

는 항상 인서트를 마무리 또는 DataTable에 이미 채워진 경우이 루프에게

  for(int i=0;i < dt.Rows.Count;i++) 
     { 
      dt.Rows[i]["ID"] = i + 1; 
     } 
+0

이것은 정말로 혼란 스럽습니다. 그리고'DataTable'을 변경해도 DB가 바뀌지는 않습니다. 이것이 OP 질문의 핵심 부분이라고 생각합니다. – andr

6
DataTable table = new DataTable("table"); 


DataColumn dc= table.Columns.Add("id", typeof(int)); 
     dc.AutoIncrement=true; 
     dc.AutoIncrementSeed = 1; 
     dc.AutoIncrementStep = 1; 

// Add the new column name in DataTable 

table.Columns.Add("name",typeof(string)); 

    table.Rows.Add(null, "A"); 
    table.Rows.Add(null, "B"); 
    table.Rows.Add(null, "C"); 
1

를 실행해야합니다 삭제할 ​​때. 아래의 방법을 사용할 수 있습니다

관련 문제