Пример #1
0
        /// <summary>
        /// 无参数存储过程执行,事务在存储过程内自行实现。
        /// 会返回数据集, 不返回受影响行数。
        /// </summary>
        /// <param name="P_cmd">存储过程名称</param>
        /// <param name="DTname">返回的数据集DataTable名</param>
        /// <param name="RedisKey">键</param>
        /// <param name="RedisPZ">配置字符串</param>
        /// <returns>返回结果集合对应的哈希表,包括执行是否成功,执行结果的数据集</returns>
        Hashtable I_Dblink.RunProc_CMD(string P_cmd, string DTname, string RedisKey, string RedisPZ)
        {
            DataSet formRedis = RedisClass.RedisTryOnlyForDBhelper(RedisKey, RedisPZ);

            if (formRedis != null)
            {
                return_ht["return_ds"]     = formRedis;
                return_ht["return_float"]  = true;
                return_ht["return_errmsg"] = "";
                return_ht["return_other"]  = -2;
                return(return_ht);
            }
            else
            {
                SqlConnection Conn = new SqlConnection(ConnStr);
                try
                {
                    int     kp       = 0;
                    DataSet dtreturn = new DataSet();
                    Conn.Open();
                    SqlDataAdapter Da = new SqlDataAdapter();
                    Da.SelectCommand             = new SqlCommand();
                    Da.SelectCommand.Connection  = Conn;
                    Da.SelectCommand.CommandText = P_cmd;
                    Da.SelectCommand.CommandType = CommandType.StoredProcedure;

                    kp = Da.Fill(dtreturn);
                    Dispose(Conn);
                    if (dtreturn.Tables.Count > 0 && DTname != null && DTname.Trim() != "")
                    {
                        dtreturn.Tables[0].TableName = DTname;
                    }
                    return_ht["return_ds"]     = dtreturn;
                    return_ht["return_float"]  = true;
                    return_ht["return_errmsg"] = "";
                    return_ht["return_other"]  = -1;

                    return(return_ht);
                }
                catch (Exception Ex)
                {
                    Dispose(Conn);

                    return_ht["return_ds"]     = null;
                    return_ht["return_float"]  = false;
                    return_ht["return_errmsg"] = Ex.ToString();
                    return_ht["return_other"]  = -1;

                    return(return_ht);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 单语句执行,不支持事务。(优先读取缓存)
        /// 执行静态语句。 会返回数据集, 不返回受影响行数。
        /// 常用于执行静态语句进行查询操作,不能用于插入、更新操作。
        /// </summary>
        /// <param name="SQL">SQL语句</param>
        /// <param name="DTname">返回的数据集DataTable名</param>
        /// <param name="RedisKey">键</param>
        /// <param name="RedisPZ">配置字符串</param>
        /// <returns>返回结果集合对应的哈希表,包括执行是否成功,执行结果的数据集(return_ds、return_float、return_errmsg、return_other)</returns>
        Hashtable I_Dblink.RunProc(string SQL, string DTname, string RedisKey, string RedisPZ)
        {
            DataSet formRedis = RedisClass.RedisTryOnlyForDBhelper(RedisKey, RedisPZ);

            if (formRedis != null)
            {
                return_ht["return_ds"]     = formRedis;
                return_ht["return_float"]  = true;
                return_ht["return_errmsg"] = "";
                return_ht["return_other"]  = -2;
                return(return_ht);
            }
            else
            {
                SqlConnection Conn = new SqlConnection(ConnStr);
                try
                {
                    DataSet dtreturn = new DataSet();
                    int     kp       = 0;
                    Conn.Open();
                    SqlDataAdapter Da = new SqlDataAdapter(SQL, Conn);
                    kp = Da.Fill(dtreturn);
                    Dispose(Conn);
                    if (dtreturn.Tables.Count > 0 && DTname != null && DTname.Trim() != "")
                    {
                        dtreturn.Tables[0].TableName = DTname;
                    }
                    return_ht["return_ds"]     = dtreturn;
                    return_ht["return_float"]  = true;
                    return_ht["return_errmsg"] = "";
                    return_ht["return_other"]  = -1;



                    return(return_ht);
                }
                //执行失败
                catch (Exception Err)
                {
                    Dispose(Conn);

                    return_ht["return_ds"]     = null;
                    return_ht["return_float"]  = false;
                    return_ht["return_errmsg"] = Err.ToString();
                    return_ht["return_other"]  = -1;

                    return(return_ht);
                }
            }
        }
Пример #3
0
        /// <summary>
        /// 带参数存储过程执行,事务在存储过程内自行实现。
        /// 带输入参数,无输出参数,会返回数据集, 不返回受影响行数。
        /// </summary>
        /// <param name="P_cmd">存储过程名称</param>
        /// <param name="DTname">返回的数据集DataTable名</param>
        /// <param name="P_ht_in">哈希表,对应存储过程传入参数,keys为参数标记,values为参数值</param>
        /// <param name="RedisKey">键</param>
        /// <param name="RedisPZ">配置字符串</param>
        /// <returns>返回结果集合对应的哈希表,包括执行是否成功,执行结果的数据集</returns>
        Hashtable I_Dblink.RunProc_CMD(string P_cmd, string DTname, Hashtable P_ht_in, string RedisKey, string RedisPZ)
        {
            DataSet formRedis = RedisClass.RedisTryOnlyForDBhelper(RedisKey, RedisPZ);

            if (formRedis != null)
            {
                return_ht["return_ds"]     = formRedis;
                return_ht["return_float"]  = true;
                return_ht["return_errmsg"] = "";
                return_ht["return_other"]  = -2;
                return(return_ht);
            }
            else
            {
                SqlConnection Conn = new SqlConnection(ConnStr);
                try
                {
                    int     kp       = 0;
                    DataSet dtreturn = new DataSet();
                    Conn.Open();
                    SqlDataAdapter Da = new SqlDataAdapter();
                    Da.SelectCommand             = new SqlCommand();
                    Da.SelectCommand.Connection  = Conn;
                    Da.SelectCommand.CommandText = P_cmd;
                    Da.SelectCommand.CommandType = CommandType.StoredProcedure;

                    //循环添加存储过程参数
                    IDictionaryEnumerator myEnumerator = P_ht_in.GetEnumerator();
                    while (myEnumerator.MoveNext())
                    {
                        SqlParameter param = new SqlParameter();
                        param.Direction     = ParameterDirection.Input;
                        param.ParameterName = myEnumerator.Key.ToString();
                        // param.Value = myEnumerator.Value;
                        if (myEnumerator.Value == null)
                        {
                            // myEnumerator.Value = DBNull.Value;
                            param.Value = DBNull.Value;
                        }
                        else
                        {
                            param.Value = myEnumerator.Value;
                        }
                        Da.SelectCommand.Parameters.Add(param);
                    }


                    kp = Da.Fill(dtreturn);
                    Dispose(Conn);
                    if (dtreturn.Tables.Count > 0 && DTname != null && DTname.Trim() != "")
                    {
                        dtreturn.Tables[0].TableName = DTname;
                    }
                    return_ht["return_ds"]     = dtreturn;
                    return_ht["return_float"]  = true;
                    return_ht["return_errmsg"] = "";
                    return_ht["return_other"]  = -1;

                    return(return_ht);
                }
                catch (Exception Ex)
                {
                    Dispose(Conn);

                    return_ht["return_ds"]     = null;
                    return_ht["return_float"]  = false;
                    return_ht["return_errmsg"] = Ex.ToString();
                    return_ht["return_other"]  = -1;

                    return(return_ht);
                }
            }
        }