首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于dataAdapter.Update(dt)不成功的有关问题

2012-03-06 
关于dataAdapter.Update(dt)不成功的问题dt是一个表,里面的内容为数据库中目前的信息dataTable是和dt相同

关于dataAdapter.Update(dt)不成功的问题
dt是一个表   ,   里面的内容为数据库中目前的信息
dataTable是和dt相同解构的表,我想用dataTable中的内容替换掉dt中的内容,
然后更新回数据库,可是就是不成功!
  int   resultCount   =   0;
                        DataTable   dt   =   new   DataTable();
                        using   (SqlConnection   sqlconnection   =   new   SqlConnection(connString))
                        {                                
                                if   (sqlconnection.State   !=   ConnectionState.Open)
                                        sqlconnection.Open();

                                SqlTransaction   sqltransaction   =   sqlconnection.BeginTransaction();
                                SqlCommand   cmd   =   new   SqlCommand(selectText,   sqlconnection,   sqltransaction);
                                PrepareCommand(cmd,   CommandType.Text,   cmdParms);
                                SqlDataAdapter   dataAdapter   =   new   SqlDataAdapter(cmd);
                                SqlCommandBuilder   commandBuilder   =   new   SqlCommandBuilder(dataAdapter);
                                try
                                {
                                        dataAdapter.Fill(dt);
                                        dt.Clear();
                                        foreach   (DataRow   dr   in   dataTable.Rows)
                                        {
                                                dt.ImportRow(dr);
                                        }
                                        dt.GetChanges();
                                        dt.AcceptChanges();


                                        resultCount   =   dataAdapter.Update(dt);//这里dt已经是新数据了。
                                        sqltransaction.Commit();
                                        return   resultCount;
                                }
                                catch   (Exception   exp)
                                {
                                        sqltransaction.Rollback();
                                        throw   exp;
                                }

[解决办法]
去掉下面2句:

dt.GetChanges();
dt.AcceptChanges();
[解决办法]
其实你不需要这样导入

只需要 dt.Merge(dataTable);

热点排行