开发者

problem with update strong typed dataset turn to database in C# .net framework 3.5

开发者 https://www.devze.com 2022-12-17 02:27 出处:网络
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

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 开发者_StackOverflow中文版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.


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


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

精彩评论

暂无评论...
验证码 换一张
取 消