将DataTable更新回数据库

 

        #region 把DataSet中的一个DataTable更新回数据库,其中必须包含一个主健,更新时不可能使用存储过程
        /// <summary>
        /// 把DataSet中的一个DataTable更新回数据库,其中必须包含一个主健,更新时不可能使用存储过程
        /// </summary>
        /// <param name="dataSet">提供一组连接配置的用户对象</param>
        /// <param name="cmdText">当前提供查询的SQL语句</param>
        /// <param name="trans">事务,若不使用事务,则为null</param>
        /// <param name="user">提供一组连接配置的用户对象</param>
        /// <param name="accountWrapType">是否使用帐套,如果提供user则不会使用帐套</param>
        /// <returns></returns>
        private static bool UpdateDataSet(DataSet dataSet, string cmdText, SqlTransaction trans, DataBaseUser user,AccountWrapType accountWrapType)
        {
            bool result = true;
            SqlConnection conn = null;
            SqlDataAdapter dataAdapter = null;
            SqlCommand cmd = new SqlCommand();
            try
            {
                if (trans != null)
                    conn = trans.Connection;
                else
                    conn = Borrow(user, accountWrapType);

                PrepareCommand(cmd, conn, trans, cmdText, null, false);
                dataAdapter = new SqlDataAdapter(cmd);
                SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
                dataAdapter.UpdateCommand = commandBuilder.GetUpdateCommand();
                dataAdapter.Update(dataSet.GetChanges());
                dataSet.AcceptChanges();
            }
            catch (Exception e)
            {
                //if (trans != null)
               // {
                    //trans.Rollback();
                    //SqlServer.Return(conn);
              //  }
                //result = false;
                //DBException.Throw(e.Message);
            }
            finally
            {
                //if (trans == null)
                   // SqlServer.Return(user, conn);
                //Dispose(dataAdapter, cmd);
            }
            return result;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值