123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace HPSocketCS.Extended
- {
- /// <summary>
- /// SQL指令请求处理类
- /// </summary>
- public class HP_SQLHelper
- {
- public HP_SQLHelper() {
-
- }
- public static SerSqlParameter[] ToSerSqlParameter(params System.Data.SqlClient.SqlParameter[] cmdParms)
- {
- return IDataParameterToSerSqlParameter(cmdParms);
- }
- public static SerSqlParameter[] IDataParameterToSerSqlParameter(params System.Data.IDataParameter[] cmdParms)
- {
- List<SerSqlParameter> serSqlParameterList = new List<SerSqlParameter>();
- if (cmdParms != null)
- {
- foreach (System.Data.SqlClient.SqlParameter par in cmdParms)
- {
- serSqlParameterList.Add(new SerSqlParameter(par));
- }
- }
- return serSqlParameterList.ToArray();
- }
- /// <summary>
- /// 设置输出参数的值
- /// </summary>
- /// <param name="cmdParms">用户提交的参数集合</param>
- /// <param name="serSqlParameterList">执行后返回的参数集合</param>
- public static void SetOutputSqlParameter(System.Data.IDataParameter[] cmdParms, List<SerSqlParameter> serSqlParameterList)
- {
- foreach (SerSqlParameter spar in serSqlParameterList)
- {
- foreach (System.Data.SqlClient.SqlParameter par in cmdParms)
- {
- if (spar.ParaName.ToLower() == par.ParameterName.ToLower()) {
- par.Value = spar.ParaVal;
- break;
- }
- }
- }
- }
- static HPSocketCS.TcpPackClient hpClient;
- /// <summary>
- /// 网络对象
- /// </summary>
- [Obsolete("此属性只用于“Helper_SQLHelper”类,做数SQL数据传输,请不要在其它地方使用", false)]
- public static HPSocketCS.TcpPackClient HpClient
- {
- get { return hpClient; }
- set { hpClient = value; }
- }
- /// <summary>
- /// 发送SQL数据库请求命令到服务器并返回请求结果
- /// </summary>
- /// <param name="requestData">请求的SQL命令数据类</param>
- /// <param name="millisecondsTimeout"></param>
- /// <returns></returns>
- [Obsolete("此方法只用于“Helper_SQLHelper”类,做数SQL数据传输,请不要在其它地方使用", false)]
- public static HPSocketCS.Extended.SQLHelperReturnData HP_SendSqlCommandToServer(HPSocketCS.Extended.SQLHelperRequestData requestData, int millisecondsTimeout = 1000*90)
- {
- return HP_SQLHelper.HP_SendSqlCommandToServer(HP_SQLHelper.HpClient,requestData, millisecondsTimeout);
- }
-
- /// <summary>
- /// 发送SQL数据库请求命令到服务器并返回请求结果
- /// </summary>
- /// <param name="requestData">请求的SQL命令数据类</param>
- /// <param name="millisecondsTimeout"></param>
- /// <returns></returns>
- public static HPSocketCS.Extended.SQLHelperReturnData HP_SendSqlCommandToServer(HPSocketCS.TcpPackClient _Client,HPSocketCS.Extended.SQLHelperRequestData requestData, int millisecondsTimeout = 1000*90)
- {
- HPSocketCS.Extended.SQLHelperReturnData retData = null;
- if (_Client.State == ServiceState.Stoped || _Client.State == ServiceState.Stoping)
- {
- _Client.Connetion();
- System.Threading.Thread.Sleep(1000);
- }
- if (_Client.State == ServiceState.Started)
- {
- try
- {
- byte[] tempSendBuffer = HPSocketCS.Extended.DataSetSerializerDeserialize.ObjectSerializerCompressionRetBytes(requestData);
- using (System.IO.MemoryStream retMstream = _Client.AutoUnpackingSendAndReturnResult(tempSendBuffer, HPSocketCS.Extended.DataType.SQLHelper, HPSocketCS.Extended.TransferRequestCommand.SQLHelperData, millisecondsTimeout))
- {
- if (retMstream != null && retMstream.Length > 0)
- {
- retData = (HPSocketCS.Extended.SQLHelperReturnData)HPSocketCS.Extended.DataSetSerializerDeserialize.ObjectDeserializeDecompress(retMstream.GetBuffer());
- retData.DataSize = retMstream.Length;
- }
- if (retMstream != null)
- {
- retMstream.Close();
- }
- }
- }
- catch (Exception ex)
- {
- retData = new HPSocketCS.Extended.SQLHelperReturnData("SQL请求处理出错:" + ex.Message);
- }
- }
- else
- {
- return new SQLHelperReturnData("SQL指令时失败,未连接到服器或网络连接已断开,请检查网络环境。");
- }
-
- return retData;
- }
- }
- }
|