проблема с обновлением набора строго строго типизированных данных к базе данных в C # .net Framework 3.5 - PullRequest
0 голосов
/ 23 января 2010

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

Пожалуйста, дайте мне несколько идей?

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 25 января 2010

Я нашел решение этой проблемы с помощью TableAdapterManager.

Ниже мой код:

DsTel tel = новый 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());
0 голосов
/ 23 января 2010

Вы позвонили 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...