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

【SqlDataAdapter.Update()】关于使用DataSet更新,该如何处理

2013-09-12 
【SqlDataAdapter.Update()】关于使用DataSet更新/// summary/// 增加DataSet/// /summary/// param na

【SqlDataAdapter.Update()】关于使用DataSet更新
        /// <summary>
        /// 增加DataSet
        /// </summary>
        /// <param name="ds">Oracle DataSet</param>
        /// <param name="tableName">tableName</param>
        public int AddDataSet(DataSet ds1, string tableName)
        {
            string sql = "select * from " + tableName;
            int judge= 0;
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlDataAdapter da;
                try
                {
                    DataSet ds = new DataSet();
                    connection.Open();
                    da = new SqlDataAdapter(sql, connection);
                    SqlCommandBuilder sb = new SqlCommandBuilder(da);
                    da.InsertCommand = sb.GetInsertCommand();
                    da.Fill(ds, "ds");
                    // 合并Oracle-Sql DataSet
                    ds.Merge(ds1);
                    judge = da.Update(ds,"ds");
                    ds.AcceptChanges();


                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    throw new Exception(ex.Message);
                }
            }
            return judge;
        }

方法介绍:数据更新用:把Oracle的数据更新到Sql Server 。根据相同的数据库表名(结构一样)称,从oracle数据库读取到的DataSet和Sql Server的DataSet(无数据)进行Merge()合并(成功),得到要更新的DataSet,然后使用Update更新到Sql Server.。前面都没问题,
judge = da.Update(ds,"ds");
不进行更新. 合并 Update SqlCommandBuilder? InsertCommand?
[解决办法]
如果只是插入的话.

在Update前加上这两句看看.

ds.AcceptChanges();
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    dr.SetAdded();
                }
da.Update(ds,"ds");

热点排行