2010-01-23 4 views
0

데이터베이스 테이블에서 일부 특수 문자를 제거하려고합니다. 나는 그것을하기 위해 강력한 타입의 테이블을 사용했다. 모든 데이터를 데이터베이스에서 데이터 세트로 가져 와서 수정 한 다음 데이터 어댑터의 메소드 update()를 호출하여 데이터 세트를 데이터베이스로 변환했지만 작동하지 않습니다.C# .net 프레임 워크 3.5에서 강력한 형식화 된 데이터 집합을 데이터베이스로 변환하는 문제가 있습니다.

다음은 내 코드

DsTel tel = new DsTel(); 

      DsTelTableAdapters.telephone_bkTableAdapter adapter = new DsTelTableAdapters.telephone_bkTableAdapter(); 
      adapter.Connection = new SqlConnection(ConfigurationManager.AppSettings["SiteSqlServer"].ToString()); 
      adapter.Fill(tel.telephone_bk); 

      foreach (DsTel.telephone_bkRow row in tel.telephone_bk.Rows) 
      { 

       row.telephoneNo = RemoveWhiteSpace(row.telephoneNo.ToString()); 
       row.AcceptChanges(); 
      } 
      tel.AcceptChanges(); 
      adapter.Update(tel.telephone_bk); 

나에게 몇 가지 아이디어를주십시오입니까?

미리 감사드립니다.

+0

오류에 대한 자세한 정보를 제공 할 수 있습니까? 오류가 발생 했습니까? 또는 데이터가 잘못 기록 되었습니까? –

답변

0

업데이트 전에 AcceptChanges을 호출했습니다. 즉, 데이터 집합에 더 이상 변경 사항이 없으므로 데이터베이스에 보낼 데이터가 없습니다.
AcceptChanges에 대한 모든 통화를 제거하고 업데이트 후 하나를 추가하십시오. 예 :

DsTel tel = new DsTel(); 

DsTelTableAdapters.telephone_bkTableAdapter adapter = new DsTelTableAdapters.telephone_bkTableAdapter(); 
adapter.Connection = new SqlConnection(ConfigurationManager.AppSettings["SiteSqlServer"].ToString()); 
adapter.Fill(tel.telephone_bk); 
foreach (DsTel.telephone_bkRow row in tel.telephone_bk.Rows) 
{ 
    row.telephoneNo = RemoveWhiteSpace(row.telephoneNo.ToString()); 
} 
adapter.Update(tel.telephone_bk); 
tel.telephone_bk.AcceptChanges(); 
+0

이 방법을 시도했지만 SQL Server에 영향을주지 않습니다. – nvtthang

1

TableAdapterManager를 사용하여이 문제에 대한 해결책을 찾았습니다. 다음은

내 코드입니다 :

DsTel의 전화 = 새로운 DsTel();

  DsTelTableAdapters.telephone_bkTableAdapter adapter = new DsTelTableAdapters.telephone_bkTableAdapter(); 
      adapter.Connection = new SqlConnection(ConfigurationManager.AppSettings["SiteSqlServer"].ToString()); 

      adapter.Fill(tel.telephone_bk); 

      foreach (DsTel.telephone_bkRow row in tel.telephone_bk.Rows) 
      { 
            if (!row.IstelephoneNoNull()) 
       { 

        row.telephoneNo = RemoveWhiteSpace(row.telephoneNo.ToString()); 
       } 


      } 

      DsTelTableAdapters.TableAdapterManager mrg = new DsTelTableAdapters.TableAdapterManager(); 
      mrg.telephone_bkTableAdapter = adapter; 
      mrg.BackupDataSetBeforeUpdate = true; 
      mrg.UpdateAll((DsTel)tel.GetChanges());