Я хочу удалить некоторые специальные символы в таблице базы данных. Я использовал сильную типизированную таблицу, чтобы сделать это. Когда я получил все данные в набор данных из базы данных и изменил его, я вызвал метод update() адаптера данных, чтобы превратить набор данных в базу данных, но он не работает.

Ниже мой код

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
nvtthang 23 Янв 2010 в 07:03
Можно подробнее о провале? Вы получаете ошибку, или данные записываются неправильно?
 – 
Chris Jaynes
23 Янв 2010 в 08:41

2 ответа

Я нашел решение этой проблемы с помощью 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());
1
nvtthang 25 Янв 2010 в 10:16

Вы звонили 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
AUSteve 23 Янв 2010 в 09:38