2010-01-23 3 views
0

Я хочу удалить некоторые специальные символы в таблице базы данных. Для этого я использовал сильную типизированную таблицу. Когда я получил все данные в набор данных из базы данных и изменил его, я вызвал метод update() адаптера данных, чтобы преобразовать данные в базу данных, но это не сработает.Проблема с обновлением сильного типизированного набора данных в базу данных в C# .net framework 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. – 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());