Example #1
0
        public override void Update(System.Data.DataTable data, string selectsql)
        {
            DB2Command cmd;

            using (cmd = new DB2Command(selectsql, conn))
            {
                if (this._s == DBStatus.Begin_Trans)
                {
                    cmd.Transaction = this.tran;
                }

                DB2DataAdapter    adt     = new DB2DataAdapter(cmd);
                DB2CommandBuilder builder = new DB2CommandBuilder(adt);

                try
                {
                    adt.UpdateCommand = builder.GetUpdateCommand();
                    adt.Update(data);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    cmd.Cancel();
                    cmd = null;
                }
            }
        }
Example #2
0
        /// <summary>
        /// 执行查询,返回查询结果的第一行第一列
        /// </summary>
        /// <typeparam name="T">返回值类型</typeparam>
        /// <param name="sql">SQL查询语句</param>
        /// <param name="parameters">参数集合</param>
        /// <returns>查询结果的第一行第一列</returns>
        public override T ExecuteScalar <T>(string sql, KdtParameterCollection parameters)
        {
            try
            {
                T value = default(T);

                // 执行SQL命令
                using (DB2Command cmd = new DB2Command(ReplaceSqlText(ReplaceSqlText(sql, parameters), parameters), _db2Cn))
                {
                    InitCommand(cmd); // 初始化

                    // 赋值参数
                    var hasConvertParams = ConvertToSqlParameter(parameters);
                    foreach (var item in hasConvertParams)
                    {
                        cmd.Parameters.Add(item.Value);
                    }

                    value = cmd.ExecuteScalar().Convert <T>();

                    cmd.Cancel();
                    cmd.Dispose();
                }

                return(value);
            }
            catch (Exception ex)
            {
                KdtLoger.Instance.Error(ex);
                throw new DataException(string.Format("执行查询,返回查询结果的第一行第一列错误,原因为:{0}", ex.Message));
            }
        }
Example #3
0
        /// <summary>
        /// 执行非查询SQL语句
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <param name="parameters">参数集合</param>
        /// <returns>受影响的记录数</returns>
        public override int ExecuteNoQuery(string sql, KdtParameterCollection parameters)
        {
            try
            {
                int effected = 0;

                // 执行SQL命令
                using (DB2Command cmd = new DB2Command(ReplaceSqlText(sql, parameters), _db2Cn))
                {
                    InitCommand(cmd); // 初始化

                    // 赋值参数
                    var hasConvertParams = ConvertToSqlParameter(parameters);
                    foreach (var item in hasConvertParams)
                    {
                        cmd.Parameters.Add(item.Value);
                    }

                    effected = cmd.ExecuteNonQuery();

                    cmd.Cancel();
                    cmd.Dispose();
                }

                return(effected);
            }
            catch (Exception ex)
            {
                KdtLoger.Instance.Error(ex);
                throw new DataException(string.Format("执行非查询SQL语句错误,原因为:{0}", ex.Message));
            }
        }
Example #4
0
        /// <summary>
        /// 读取KEY VALUE值
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public override KeyValueCollection ExecuteKVCollection(string sql, KdtParameterCollection parameters)
        {
            try
            {
                KeyValueCollection entity = new KeyValueCollection();
                // 执行SQL命令
                using (DB2Command cmd = new DB2Command(ReplaceSqlText(sql, parameters), _db2Cn))
                {
                    InitCommand(cmd); // 初始化

                    // 赋值参数
                    var hasConvertParams = ConvertToSqlParameter(parameters);
                    foreach (var item in hasConvertParams)
                    {
                        cmd.Parameters.Add(item.Value);
                    }

                    // 执行填充数据
                    using (DB2DataReader reader = cmd.ExecuteReader())
                    {
                        entity = GetEntity(reader);
                        // 反射参数值
                        ReflectParamValue(parameters, hasConvertParams);

                        reader.Close();
                        reader.Dispose();
                    }

                    cmd.Cancel();
                    cmd.Dispose();
                }

                return(entity);
            }
            catch (DB2Exception me)
            {
                KdtLoger.Instance.Error(me);
                throw new DataException(me.Message);
            }
            catch (Exception ex)
            {
                KdtLoger.Instance.Error(ex);
                throw new DataException(string.Format("执行SQL查询,返回数据集合错误,原因为:{0}", ex.Message));
            }
        }
Example #5
0
        public override void ExecuteNoQuery(string sql, DBOParameterCollection dbp)
        {
            DB2Command cmd;
            DataSetStd ds = new DataSetStd();

            using (cmd = new DB2Command(sql, conn))
            {
                try
                {
                    //如果事務開啟,則使用事務的方式
                    if (this._s == DBStatus.Begin_Trans)
                    {
                        cmd.Transaction = this.tran;
                    }

                    cmd.CommandText = sql;
                    //如果有參數
                    if (dbp != null)
                    {
                        FillParametersToCommand(cmd, dbp);
                    }
                    if (_s == DBStatus.Begin_Trans)
                    {
                        cmd.Transaction = this.tran;
                    }

                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    cmd.Cancel();
                    cmd = null;
                }
            }
        }
Example #6
0
        public override Data.DataSetStd Query(string sql, DBOParameterCollection dbp)
        {
            DB2Command cmd;
            DataSetStd ds = new DataSetStd();

            using (cmd = new DB2Command(sql, conn))
            {
                try
                {
                    //如果事務開啟,則使用事務的方式
                    if (this._s == DBStatus.Begin_Trans)
                    {
                        cmd.Transaction = this.tran;
                    }

                    DB2DataAdapter rd = new DB2DataAdapter(cmd);
                    //如果有參數
                    if (dbp != null)
                    {
                        FillParametersToCommand(cmd, dbp);
                    }

                    rd.Fill(ds);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    cmd.Cancel();
                    cmd = null;
                }
            }

            return(ds);
        }