/// <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); } } }
/// <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); } } }
/// <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); } } }