views:

369

answers:

2

Hi all,

I want to remove some special characters in a table of database. I've used strong typed table to do it. When i got all data into dataset from database and modified it then i called method update() of data adapter to turn dataset to database but it doesn't work.

Below is my code

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);

Please give me some ideas?

Thanks in advance.

A: 

You've called AcceptChanges before the update. This means the dataset has no changes any more so there is nothing to send to the database.
Remove all of the calls to AcceptChanges and add one AFTER the update. ie:

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();
AUSteve
I tried this way but it doesn't effect to sql server.
nvtthang
A: 

I've found the solution for this problem by using the TableAdapterManager.

Below is my code:

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)
            {
                                    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());
nvtthang