• ASP.NET经典的、封装好的ADO.NET类包


    using System;
    using System.Collections;
    using System.Collections.Specialized;
    using System.Runtime.Remoting.Messaging;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    namespace LTP.SQLServerDAL
    {
     /// <summary>
     /// ADO.NET数据库操作基础类。
     /// </summary>
     public abstract class DbManagerSQL
     {
      //数据库连接字符串
      protected static string connectionString = ConfigurationSettings.AppSettings["ConnectionString"]; 
      public DbManagerSQL()
      {
       //
       // TODO: 在此处添加构造函数逻辑
       //
      }
      /// <summary>
      /// 执行SQL语句,返回影响的记录数
      /// </summary>
      /// <param name="SQLString"></param>
      /// <returns></returns>
      public static int ExecuteSql(string SQLString)
      {
       using (SqlConnection connection = new SqlConnection(connectionString))
       {    
        using (SqlCommand cmd = new SqlCommand(SQLString,connection))
        {
         try
         {  
          connection.Open();
          int rows=cmd.ExecuteNonQuery();
          return rows;
         }
         catch(System.Data.SqlClient.SqlException E)
         {    
          throw new Exception(E.Message);
         }
        }    
       }
      }
      /// <summary>
      /// 执行两条SQL语句,实现数据库事务。
      /// </summary>
      /// <param name="SQLString1"></param>
      /// <param name="SQLString2"></param>
      public static void ExecuteSqlTran(string SQLString1,string SQLString2)
      {
       using (SqlConnection connection = new SqlConnection(connectionString))
       {
        connection.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection=connection;    
        SqlTransaction tx=connection.BeginTransaction();   
        cmd.Transaction=tx;    
        try
        {     
         cmd.CommandText=SQLString1;
         cmd.ExecuteNonQuery();
         cmd.CommandText=SQLString2;
         cmd.ExecuteNonQuery();     
         tx.Commit();     
        }
        catch(System.Data.SqlClient.SqlException E)
        {  
         tx.Rollback();
         throw new Exception(E.Message);
        }
        finally
        {
         cmd.Dispose();
         connection.Close();
        } 
       }
      } 
      /// <summary>
      /// 执行多条SQL语句,实现数据库事务,每条语句以“;”分割。
      /// </summary>
      /// <param name="SQLStringList"></param>
      public static void ExecuteSqlTran(string SQLStringList)
      {
       using (OdbcConnection conn = new OdbcConnection(connectionString))
       {
        conn.Open();
        OdbcCommand cmd = new OdbcCommand();
        cmd.Connection=conn;    
        OdbcTransaction tx=conn.BeginTransaction();   
        cmd.Transaction=tx;    
        try
        {   
         string [] split= SQLStringList.Split(new Char [] { ';'});
         foreach (string strsql in split) 
         {
          if (strsql.Trim()!="")
          {
           cmd.CommandText=strsql;
           cmd.ExecuteNonQuery();
          }
         }       
         tx.Commit();     
        }
        catch(System.Data.Odbc.OdbcException E)
        {  
         tx.Rollback();
         throw new Exception(E.Message);
        }
       }
      }
      /// <summary>
      /// 执行带一个存储过程参数的的SQL语句。
      /// </summary>
      /// <param name="SQLString"></param>
      /// <param name="content"></param>
      /// <returns></returns>
      public static int ExecuteSql(string SQLString,string content)
      {    
       using (SqlConnection connection = new SqlConnection(connectionString))
       {
        SqlCommand cmd = new SqlCommand(SQLString,connection);  
        System.Data.SqlClient.SqlParameter  myParameter = new System.Data.SqlClient.SqlParameter ( "@content", SqlDbType.NText);
        myParameter.Value = content ;
        cmd.Parameters.Add(myParameter);
        try
        {
         connection.Open();
         int rows=cmd.ExecuteNonQuery();
         return rows;
        }
        catch(System.Data.SqlClient.SqlException E)
        {    
         throw new Exception(E.Message);
        }
        finally
        {
         cmd.Dispose();
         connection.Close();
        } 
       }
      }  
      /// <summary>
      /// 向数据库里插入图像格式的字段
      /// </summary>
      /// <param name="strSQL"></param>
      /// <param name="fs"></param>
      /// <returns></returns>
      public static int ExecuteSqlInsertImg(string strSQL,byte[] fs)
      {  
       using (SqlConnection connection = new SqlConnection(connectionString))
       {
        SqlCommand cmd = new SqlCommand(strSQL,connection); 
        System.Data.SqlClient.SqlParameter  myParameter = new System.Data.SqlClient.SqlParameter ( "@fs", SqlDbType.Image);
        myParameter.Value = fs ;
        cmd.Parameters.Add(myParameter);
        try
        {
         connection.Open();
         int rows=cmd.ExecuteNonQuery();
         return rows;
        }
        catch(System.Data.SqlClient.SqlException E)
        {    
         throw new Exception(E.Message);
        }
        finally
        {
         cmd.Dispose();
         connection.Close();
        } 
        
       }
      }
      /// <summary>
      /// 执行一条计算查询结果语句,返回查询结果(整数)。
      /// </summary>
      /// <param name="strSQL"></param>
      /// <returns></returns>
      public static int GetCount(string strSQL)
      {
       using (SqlConnection connection = new SqlConnection(connectionString))
       {
        SqlCommand cmd = new SqlCommand(strSQL,connection);    
        try
        {
         connection.Open();
         SqlDataReader result = cmd.ExecuteReader();
         int i=0;
         while(result.Read())
         {
          i=result.GetInt32(0);
         }
         result.Close();    
         return i;
        }
        catch(System.Data.SqlClient.SqlException e)
        {        
         throw new Exception(e.Message);
        } 
        finally
        {
         cmd.Dispose();
         connection.Close();
        }
       }
      } 
      /// <summary>
      /// 执行一条计算查询结果语句,返回查询结果(object)。
      /// </summary>
      /// <param name="SQLString"></param>
      /// <returns></returns>
      public static object GetSingle(string SQLString)
      {
       using (SqlConnection connection = new SqlConnection(connectionString))
       {
        SqlCommand cmd = new SqlCommand(SQLString,connection);  
        try
        {
         connection.Open();
         object obj = cmd.ExecuteScalar();
         if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
         {     
          return null;
         }
         else
         {
          return obj;
         }    
        }
        catch(System.Data.SqlClient.SqlException e)
        {    
         throw new Exception(e.Message);
        }
        finally
        {
         cmd.Dispose();
         connection.Close();
        }
       }
      }
      /// <summary>
      /// 执行查询语句,返回SqlDataReader
      /// </summary>
      /// <param name="strSQL"></param>
      /// <returns></returns>
      public static SqlDataReader ExecuteReader(string strSQL)
      {
       using (SqlConnection connection = new SqlConnection(connectionString))
       {
        SqlCommand cmd = new SqlCommand(strSQL,connection); 
        SqlDataReader myReader;   
        try
        {
         connection.Open(); 
         myReader = cmd.ExecuteReader();
         return myReader;
        }
        catch(System.Data.SqlClient.SqlException e)
        {        
         throw new Exception(e.Message);
        }  
        finally
        {
         cmd.Dispose();
         connection.Close();
        } 
       }
      }  
      /// <summary>
      /// 执行查询语句,返回DataSet
      /// </summary>
      /// <param name="SQLString"></param>
      /// <returns></returns>
      public static DataSet Query(string SQLString)
      {
       using (SqlConnection connection = new SqlConnection(connectionString))
       {
        DataSet ds = new DataSet();
        try
        {
         connection.Open();
         SqlDataAdapter command = new SqlDataAdapter(SQLString,connection);    
         command.Fill(ds,"ds");
        }
        catch(System.Data.SqlClient.SqlException ex)
        {    
         throw new Exception(ex.Message);
        }   
        return ds;
       }
       
      }
    
    
      #region 存储过程操作
    
      /// <summary>
      /// 运行存储过程
      /// </summary>
      /// <param name="storedProcName"></param>
      /// <param name="parameters"></param>
      /// <returns></returns>
      public static SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
      {
       using (SqlConnection connection = new SqlConnection(connectionString))
       {
        SqlDataReader returnReader;
        connection.Open();
        SqlCommand command = BuildQueryCommand( connection,storedProcName, parameters );
        command.CommandType = CommandType.StoredProcedure;
    
        returnReader = command.ExecuteReader();
        //Connection.Close();
        return returnReader;
       }
      }
      private static SqlCommand BuildQueryCommand(SqlConnection connection,string storedProcName, IDataParameter[] parameters)
      {
       
        SqlCommand command = new SqlCommand( storedProcName, connection );
        command.CommandType = CommandType.StoredProcedure;
        foreach (SqlParameter parameter in parameters)
        {
         command.Parameters.Add( parameter );
        }
        return command;
       
      }  
      public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName )
      {
       using (SqlConnection connection = new SqlConnection(connectionString))
       {
        DataSet dataSet = new DataSet();
        connection.Open();
        SqlDataAdapter sqlDA = new SqlDataAdapter();
        sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters );
        sqlDA.Fill( dataSet, tableName );
        connection.Close();
    
        return dataSet;
       }
      }
    
      #endregion 
     }
    }
    
    --------------------------------------------------------------------------------------------------------------------------------
    
    //这是我更新的一个版本,与上面可以说变化相当大
    
    //其中FlashGateway是Flash Remoting的一个dll大家可以去掉相关代码,不影响使用
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Collections;
    using System.Collections.Specialized;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using mvi.sysmanage;
    using FlashGateway.IO;
    
    namespace mvi.dbaccess
    {
        #region    class sqlcom
        /// <summary>
        /// sqlcom
        /// </summary> 
        public class sqlCom
        {
            //FLASHSRV/HIPIHI
            //private string DBCnStr = @"Data Source=FLASHSRV;Initial Catalog=hipihi;Persist Security Info=True;User ID=sa;password=1";
    
           private string DBCnStr = @"Data Source=mvi-dpe;Initial Catalog=hipihi;Persist Security Info=True;User ID=sa;password=mvi";
    
            public sqlCom()
            {
                //DBCnStr = @"Data Source=FLASHSRV;Initial Catalog=hipihi;Persist Security Info=True;User ID=sa;password=1";
                DBCnStr = @"Data Source=mvi-dpe;Initial Catalog=hipihi;Persist Security Info=True;User ID=sa;password=mvi";
            }
    
            public sqlCom(string connectstring)
            {
                if (connectstring.Length > 1)
                {
                    DBCnStr = connectstring;
                }
            }
    
            public string SQLCnStr
            {
                get
                {
                    return DBCnStr;
                }
                set
                {
                    DBCnStr = value;
                }
            }
    
            #region InitSqlConnection    初始化Sql连接字符串
            /// <summary>
            /// 初始化Sql连接字符串
            /// </summary>
            /// <param name="DBCnStr">传入的dbconnection</param>
            /// <param name="cmdText">传入的cmd text</param>
            /// <returns>sql server connection string</returns>
            private string InitSqlConnection(string DBCnStr, string cmdText)
            {
                // temp code
                return DBCnStr;
    
                //// final code
                //int iD = DBCnStr.IndexOf("Data Source=");
                //int iL = DBCnStr.Substring(iD + 12).Split(';')[0].Length;
                //string strSqlServerName = DBCnStr.Substring(iD + 12, iL);
                //string strNewSqlServerName = GetSqlServerName(cmdText);
                //return DBCnStr.Replace(strSqlServerName, strNewSqlServerName);
            }
            #endregion
    
            #region GetSqlServerName    由sql string 获取数据库服务器名
            /// <summary>
            /// 由sql string 获取sql server name
            /// </summary>
            /// <param name="cmdText">传入的cmd text</param>
            /// <returns>sql server name</returns>
            private string GetSqlServerName(string cmdText)
            {
                return cmdText.Substring(cmdText.IndexOf("from") + 5).Split('.')[0].ToString();
            }
            #endregion
    
            # region GetDataSet   通过执行SQL语句返回一个状态
            /// <summary>
            /// 通过执行SQL语句返回一个状态
            /// </summary>
            /// <param name="cmdText">“SQL 文本”</param>
            /// <param name="oCn">"连接对象"</param>
            /// <param name="oDs">"引用的DataSet它将在程序中改变内容"</param>
            /// <returns>"成功则返回0,否则返回错误代码"</returns>
            public int GetDataSet(string cmdText, ref DataSet oDs)
            {
                DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
                SqlConnection oCn = new SqlConnection(DBCnStr);
    
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
    
                    return -1;
                }
    
                //定义数据适配对象
                SqlDataAdapter oleDataAdapter = new SqlDataAdapter(cmdText, oCn);
    
                int status = -1;
                try
                {
                    //填充DataSet
                    oleDataAdapter.Fill(oDs);
                    status = 0;
                }
                catch (Exception oErr)
                {
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
                    status = -1;
                }
                finally
                {
                    oleDataAdapter = null;
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                }
                return status;
            }
            #endregion
    
            # region GetDataTable   执行SQL语句并返回一个表
            /// <summary>
            /// 执行SQL语句并返回一个表
            /// </summary>
            /// <param name="cmdText">SQL文本</param>
            /// <param name="DBCnStr">dbconnect</param>
            /// <param name="inDt">返回表</param>
            /// <returns>成功则返回0,否则返回错误代码</returns>
            public int GetDataTable(string cmdText, ref DataTable inDt)
            {
                DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
                SqlConnection oCn = new SqlConnection(DBCnStr);
    
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    return -1;
                }
    
                //建立数据适配对象
                SqlDataAdapter oleDataAdapter = new SqlDataAdapter(cmdText, oCn);
    
                int status = -1;
                try
                {
                    //填充数据表
                    oleDataAdapter.Fill(inDt);
                    status = 0;
                }
                catch (Exception oErr)
                {
                    //异常处理
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    status = -1;
                }
                finally
                {
                    oleDataAdapter = null;
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                }
                return status;
            }
            #endregion
    
            # region GetDataTable   执行SQL语句并返回一个表
            /// <summary>
            /// 执行SQL语句并返回一个表
            /// </summary>
            /// <param name="cmdText">SQL文本</param>
            /// <param name="DBCnStr">dbconnect</param>
            /// <param name="inDt">返回表</param>
            /// <returns>成功则返回0,否则返回错误代码</returns>
            public int GetCount(string cmdText)
            {
                DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
                SqlConnection oCn = new SqlConnection(DBCnStr);
    
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    return -1;
                }
    
                //建立数据适配对象
                SqlDataAdapter oleDataAdapter = new SqlDataAdapter(cmdText, oCn);
    
                DataTable inDt = new DataTable();
                int status = -1;
                try
                {
                    //填充数据表
                    oleDataAdapter.Fill(inDt);
    
                    status = inDt.Rows.Count;
                }
                catch (Exception oErr)
                {
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
                    status = -1;
                }
                finally
                {
                    oleDataAdapter = null;
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                }
                return status;
            }
            #endregion
    
            # region    //  GetNVColl   执行SQL语句并返回NameValueCollection
            ///// <summary>
            ///// 执行SQL语句并返回NameValueCollection
            ///// </summary>
            ///// <param name="cmdText">SQL文本</param>
            ///// <param name="NameValueCollection">nvColl</param>
            ///// <returns>成功则返回0,否则返回错误代码</returns>
            //public int GetNVColl(string cmdText, ref NameValueCollection nvColl)
            //{
    
            //    DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
            //    SqlConnection oCn = new SqlConnection(DBCnStr);
    
            //    try
            //    {
            //        oCn.Open();
            //    }
            //    catch (Exception oErr)
            //    {
            //        //WriteFile(oErr.Message);
            //        Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
            //        return -1;
            //    }
            //    //建立数据读取对象
            //    SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
            //    //填充SqlDataReader
            //    SqlDataReader oleReader;
    
            //    int status = -1;
            //    try
            //    {
    
            //        oleReader = oleCommand.ExecuteReader();
            //        // Always call Read before accessing data.
            //        while (oleReader.Read())
            //        {
            //            for (int i = 0; i < oleReader.FieldCount; i++)
            //            {
            //                if (oleReader.GetValue(i).ToString() != "")
            //                    nvColl.Add(oleReader.GetName(i), oleReader.GetString(i));
            //            }
            //        }
    
            //        status = 0;
            //    }
            //    catch (Exception oErr)
            //    {
            //        //异常处理
            //        //WriteFile(oErr.Message);
            //        Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
            //        status = -1;
            //    }
            //    finally
            //    {
            //        oleReader = null;
            //        if (oCn.State == System.Data.ConnectionState.Open)
            //        {
            //            oCn.Close();
            //        }
            //    }
            //    return status;
            //}
            #endregion
    
            //
            #region GetArrayList     执行SQL语句并返回一个ArrayList
            ///// <summary>
            ///// 执行SQL语句并返回一个ArrayList
            ///// </summary>
            ///// <param name="cmdText">SQL文本</param>
            ///// <returns>返回ArrayList arraylist[i]为name,arraylist[i+1]为value</returns>
            //public ArrayList GetArrayList(string cmdText, ref ArrayList aName, ref ArrayList aValue)
            //{
            //    ArrayList aNameValue = new ArrayList();
            //    SqlConnection oCn = new SqlConnection(DBCnStr);
    
            //    try
            //    {
            //        oCn.Open();
            //    }
            //    catch (Exception oErr)
            //    {
            //        //WriteFile(oErr.Message);
            //        Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
            //        return null;
            //    }
            //    //建立数据读取对象
            //    SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
            //    //填充SqlDataReader
            //    SqlDataReader oleReader;
    
            //    ArrayList status = null;
            //    try
            //    {
    
            //        oleReader = oleCommand.ExecuteReader();
            //        // Always call Read before accessing data.
            //        while (oleReader.Read())
            //        {
            //            for (int i = 0; i < oleReader.FieldCount; i++)
            //            {
            //                if (oleReader.GetValue(i).ToString() != "")
            //                    aName.Add(oleReader.GetName(i));
            //                aValue.Add(oleReader.GetString(i + 1));
            //            }
            //        }
    
            //        status = aValue;
            //    }
            //    catch (Exception oErr)
            //    {
            //        //异常处理
            //        //WriteFile(oErr.Message);
            //        Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
            //        status = null;
            //    }
            //    finally
            //    {
            //        oleReader = null;
            //        if (oCn.State == System.Data.ConnectionState.Open)
            //        {
            //            oCn.Close();
            //        }
            //    }
            //    return status;
            //}
            #endregion
            //
    
            #region   GetArrayList   执行SQL语句并返回一个ArrayList
            /// <summary>
            /// 执行SQL语句并返回一个ArrayList
            /// </summary>
            /// <param name="cmdText">SQL文本</param>
            /// <returns>返回ArrayList arraylist[i]为name,arraylist[i+1]为value</returns>
            public int GetArrayList(string cmdText, ref ArrayList aNameValue)
            {
                DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
                SqlConnection oCn = new SqlConnection(DBCnStr);
    
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    return -1;
                }
                //建立数据读取对象
                SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
                //填充SqlDataReader
                SqlDataReader oleReader;
    
                int status = -1;
                try
                {
    
                    oleReader = oleCommand.ExecuteReader();
                    // Always call Read before accessing data.
                    while (oleReader.Read())
                    {
                        for (int i = 0; i < oleReader.FieldCount - 1; i ++ )
                        {
                            if (oleReader.GetValue(i).ToString() != "")
                                aNameValue.Add(oleReader.GetName(i));
                        }
                    }
    
                    status = 1;
                }
                catch (Exception oErr)
                {
                    //异常处理
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    status = -1;
                }
                finally
                {
                    oleReader = null;
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                }
                return status;
            }
            #endregion
    
            #region   GetASObject   执行SQL语句并返回一个包含多条数据的ASObject (name,value)
            /// <summary>
            /// 执行SQL语句,查询两个字段,并返回一个ASObject
            /// </summary>
            /// <param name="cmdText">SQL文本</param>
            /// <param name="asO">ASObject 对象</param>
            /// <returns>返回int  ASObject[i]为(name,value)</returns>
            public int GetASObjectMulti(string cmdText, ref ASObject asO)
            {
                DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
                SqlConnection oCn = new SqlConnection(DBCnStr);
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    return -1;
                }
                //建立数据读取对象
                SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
                //填充SqlDataReader
                SqlDataReader oleReader;
    
                int status = -1;
                try
                {
                    int i = 1;
                    oleReader = oleCommand.ExecuteReader();
                    // Always call Read before accessing data.
                    while (oleReader.Read())
                    {
                        for (int j = 0; j < oleReader.FieldCount; j++)
                        {
                            asO.Add(i+"@"+oleReader.GetName(j),oleReader.GetValue(j));//i@+"name",i为第几条数据的序号
                        }
                        i++;
                    }
    
                    status = 1;
                }
                catch (Exception oErr)
                {
                    //异常处理
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    status = -1;
                }
                finally
                {
                    oleReader = null;
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                }
                return status;
            }
            #endregion
    
            #region   GetASObjectSingle   执行SQL语句并返回一个包含单条数据的ASObject (name,value)
            /// <summary>
            /// 执行SQL语句查询一条数据(必须返回一条数据),返回一个ASObject
            /// </summary>
            /// <param name="cmdText">SQL文本</param>
            /// <param name="asO">ASObject 对象</param>
            /// <returns>返回int  ASObject[i]为(name,value)</returns>
            public int GetASObjectSingle(string cmdText, ref ASObject asO)
            {
                DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
                SqlConnection oCn = new SqlConnection(DBCnStr);
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    return -1;
                }
                //建立数据读取对象
                SqlCommand oleCommand = new SqlCommand(cmdText, oCn);
                //填充SqlDataReader
                SqlDataReader oleReader;
    
                int status = -1;
                try
                {
                    //oleReader = oleCommand.ExecuteScalar(); // modified by apenni 2006-5-6
                    oleReader = oleCommand.ExecuteReader();
                    // Always call Read before accessing data.
                    while (oleReader.Read())
                    {
                        for (int i = 0; i < oleReader.FieldCount; i++)
                        {
                            asO.Add(oleReader.GetName(i), oleReader.GetValue(i));
                        }
                    }
    
                    status = 1;
                }
                catch (Exception oErr)
                {
                    //异常处理
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    status = -1;
                }
                finally
                {
                    oleReader = null;
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                }
                return status;
            }
            #endregion
    
            #region   ExecuteSql    执行SET,DELETE语句时返回影响的行数
            /// <summary>
            /// 执行SET,DELETE语句时返回影响的行数
            /// </summary>
            /// <param name="cmdText">“SQL文本”</param>
            /// <returns>“返回影响的行数,否则返回错误代码”</returns>
            public int ExecuteSql(string cmdText)
            {
                int intReturn = -1;//返回影响的行数。
                SqlCommand oCmd = new SqlCommand();
    
                DBCnStr = this.InitSqlConnection(DBCnStr, cmdText);
                SqlConnection oCn = new SqlConnection(DBCnStr);
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    return -1;
                }
    
                oCmd.Connection = oCn;
                oCmd.CommandType = CommandType.Text;
                oCmd.CommandText = cmdText;
    
                //定义事务 设定隔离级别
                SqlTransaction oTx = oCn.BeginTransaction(IsolationLevel.ReadCommitted);
                oCmd.Transaction = oTx;
    
                //处理SQL语句
                #region   事务处理
                try
                {
                    //支持事务
                    intReturn = oCmd.ExecuteNonQuery();
                    oTx.Commit();
    
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    oTx.Rollback();
    
                    intReturn = -1;
    
                }
                finally
                {
                    oCmd = null;
                    oTx = null;
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                }
                #endregion
    
                return intReturn;
            }
            #endregion
    
            #region   ExecuteSql    执行SET,DELETE语句时返回影响的行数
            /// <summary>
            /// 执行SET,DELETE语句时返回影响的行数
            /// </summary>
            /// <param name="cmdText">“SQL文本,支持多sql语句通过';'拼接”</param>
            /// <returns>“返回影响的行数,否则返回错误代码”</returns>
            public int ExecuteSql(params string[] cmdText)
            {
                string strSql = string.Empty;
                foreach (string strCmd in cmdText)
                {
                    strSql += strCmd;
                }
                return ExecuteSql(strSql);
            }
            //added by apenni 2006-5-6
            #endregion
    
            #region   CallStoreProc   调用系统存储过程返回一个整数
            /// <summary>
            /// 调用系统存储过程返回一个整数
            /// </summary>
            /// <param name = "strSysSPName">“存储过程枚举类型”</param>
            /// <param name="InParaName">"in参数名字"</param>
            /// <param name = "ParamValue">“参数列表”</param>
            /// <param name="OutParaName">"out参数名字"</param>
            /// <param name="OutParaValue">"返回的参数值"</param>
            /// <param name="IType">"out参数的类型"</param>
            /// <returns>"成功则返回所影响的行数,否则返回-1"</returns>
            public int CallStoreProc(string strSysSPName, IList InParaName, IList InParamValue, IList OutParaName, ref object[] OutParaValue, DBTYPE[] IType)
            {
                int inReturn = -1;
    
    
                SqlCommand oCmd = new SqlCommand();
    
                oCmd.CommandText = strSysSPName;
                oCmd.CommandType = CommandType.StoredProcedure;
    
                #region in参数的建立
                if (InParamValue != null && InParaName != null)
                {
                    //建立in参数
                    for (int i = 0; i < InParamValue.Count; i++)
                    {
                        SqlParameter oPara = new SqlParameter();
    
                        //调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
                        if (InParaName[i] != null)
                        {
                            oPara = SQLParamHelper.CreateParameterWithValue(InParaName[i].ToString(), InParamValue[i]);
                            oPara.Direction = ParameterDirection.Input;
                            oCmd.Parameters.Add(oPara);
                        }
                    }
                }
                #endregion
    
                #region out参数的建立
    
                if (OutParaName != null && OutParaValue != null && IType != null)
                {
                    //建立in参数
                    for (int i = 0; i < OutParaName.Count; i++)
                    {
                        SqlParameter oPara = new SqlParameter();
    
                        //调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
                        if (OutParaName[i] != null)
                        {
                            oPara = SQLParamHelper.CreateOutParameterWithValue(OutParaName[i].ToString(), IType[i].ToString());
                            oPara.Direction = ParameterDirection.Output;
                            oCmd.Parameters.Add(oPara);
                        }
                    }
                }
    
                #endregion
    
                SqlConnection oCn = new SqlConnection(DBCnStr);
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
                    return -1;
                }
    
                oCmd.Connection = oCn;
    
                //连接数据库和执行存储过程
                try
                {
                    inReturn = oCmd.ExecuteNonQuery();
                    for (int i = 0; i < OutParaValue.Length; i++)
                    {
                        OutParaValue[i] = oCmd.Parameters[OutParaName[i].ToString()].Value;
                    }
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    inReturn = -1;
                }
                finally
                {
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                    oCmd = null;
                }
                return inReturn;
            }
            #endregion
    
            #region   CallStoreProc   调用系统存储过程并影响生成一个object对象值
            /// <summary>
            /// 调用系统存储过程并影响生成一个object对象值
            /// </summary>
            /// <param name = "strSysSPName">“存储过程枚举类型”</param>
            /// <param name="InParaName">"in参数名字"</param>
            /// <param name = "InParamValue">“in参数列表”</param>
            /// <param name="OutParaName">"out参数名字"</param>
            /// <param name="OutParaValue">"out参数值"</param>
            /// <param name="IType">"out参数的类型"</param>
            /// <param name="inObject">"引用的值"</param>
            /// <returns>成功则返回1,否则返回-1或错误代码</returns>
            public int CallStoreProc(string strSysSPName, IList InParaName, IList InParamValue, IList OutParaName, ref object[] OutParaValue, DBTYPE[] IType, ref object objReturn)
            {
                //建立Command对象
                SqlCommand oCmd = new SqlCommand();
    
                oCmd.CommandText = strSysSPName.ToString();
                oCmd.CommandType = CommandType.StoredProcedure;
    
                int status = -1;
    
                #region in参数的建立
                if (InParamValue != null && InParaName != null)
                {
                    //建立in参数
                    for (int i = 0; i < InParamValue.Count; i++)
                    {
                        SqlParameter oPara = new SqlParameter();
    
                        //调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
                        if (InParaName[i] != null)
                        {
                            oPara = SQLParamHelper.CreateParameterWithValue(InParaName[i].ToString(), InParamValue[i]);
                            oPara.Direction = ParameterDirection.Input;
                            oCmd.Parameters.Add(oPara);
                        }
                    }
                }
                #endregion
    
                #region out参数的建立
    
                if (OutParaName != null && OutParaValue != null && IType != null)
                {
                    //建立in参数
                    for (int i = 0; i < OutParaName.Count; i++)
                    {
                        SqlParameter oPara = new SqlParameter();
    
                        //调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
                        if (OutParaName[i] != null)
                        {
                            oPara = SQLParamHelper.CreateOutParameterWithValue(OutParaName[i].ToString(), IType[i].ToString());
                            oPara.Direction = ParameterDirection.Output;
                            oCmd.Parameters.Add(oPara);
                        }
                    }
                }
    
                #endregion
    
                SqlConnection oCn = new SqlConnection(DBCnStr);
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    return -1;
                }
    
                oCmd.Connection = oCn;
    
                //连接数据库和执行存储过程
                try
                {
                    //通过SqlDataAdapter来填充Table
                    objReturn = oCmd.ExecuteScalar();
                    #region 取得返回参数的值
    
                    for (int i = 0; i < OutParaValue.Length; i++)
                    {
                        OutParaValue[i] = oCmd.Parameters[OutParaName[i].ToString()].Value;
                    }
    
                    #endregion
                    status = 0;
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    status = -1;
                }
                finally
                {
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                    oCmd = null;
                }
                return status;
            }
            #endregion
           
            #region    CallStoreProc    调用用户存储过程返回一个DataTable(Select 语句)
            /// <summary>
            /// 调用用户存储过程返回一个DataTable(Select 语句)
            /// </summary>
            /// <param name = "strSPName">“存储过程名”</param>
            /// <param name="InParaName">"in参数名字"</param>
            /// <param name = "InParamValue">“in参数列表”</param>
            /// <param name="OutParaName">"out参数名字"</param>
            /// <param name="IType">"out参数的类型"</param>
            /// <param name="OutParaValue">"out参数值"</param>
            /// <param name="oDT">"传入的DataTable引用"</param>
            ///<returns>"成功则返回1,否则返回-1或错误代码"</returns>
            public int CallStoreProc(string strSPName, IList InParaName, IList InParamValue, IList OutParaName, ref object[] OutParaValue, DBTYPE[] IType, ref DataTable oDT)
            {
    
                //建立Command对象
                SqlCommand oCmd = new SqlCommand();
    
                oCmd.CommandText = strSPName.ToString();
                oCmd.CommandType = CommandType.StoredProcedure;
    
                int status = -1;
    
                #region in参数的建立
                if (InParamValue != null && InParaName != null)
                {
                    //建立in参数
                    for (int i = 0; i < InParamValue.Count; i++)
                    {
                        SqlParameter oPara = new SqlParameter();
    
                        //调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
                        if (InParaName[i] != null)
                        {
                            oPara = SQLParamHelper.CreateParameterWithValue(InParaName[i].ToString(), InParamValue[i]);
                            oPara.Direction = ParameterDirection.Input;
                            oCmd.Parameters.Add(oPara);
                        }
                    }
                }
                #endregion
    
                #region out参数的建立
    
                if (OutParaName != null && OutParaValue != null && IType != null)
                {
                    //建立in参数
                    for (int i = 0; i < OutParaName.Count; i++)
                    {
                        SqlParameter oPara = new SqlParameter();
    
                        //调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
                        if (OutParaName[i] != null)
                        {
                            oPara = SQLParamHelper.CreateOutParameterWithValue(OutParaName[i].ToString(), IType[i].ToString());
                            oPara.Direction = ParameterDirection.Output;
                            oCmd.Parameters.Add(oPara);
                        }
                    }
                }
    
                #endregion
    
                SqlConnection oCn = new SqlConnection(DBCnStr);
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    return -1;
                }
    
                oCmd.Connection = oCn;
    
                //连接数据库和执行存储过程
                try
                {
                    //通过SqlDataAdapter来填充Table
    
                    SqlDataAdapter oDp = new SqlDataAdapter(oCmd.CommandText.ToString(), oCn);
    
                    //建立SqlDataAdapter与SqlCommand的连接
                    oDp.SelectCommand = oCmd;
                    oDp.DeleteCommand = oCmd;
                    oDp.UpdateCommand = oCmd;
                    oDp.DeleteCommand = oCmd;
    
                    //填充DataTable
                    oDp.Fill(oDT);
                    #region 取得返回参数的值
    
                    for (int i = 0; i < OutParaValue.Length; i++)
                    {
                        OutParaValue[i] = oCmd.Parameters[OutParaName[i].ToString()].Value;
                    }
    
                    #endregion
                    status = 0;
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    status = -1;
                }
                finally
                {
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                    oCmd = null;
                }
                return status;
            }
            #endregion
    
            #region   CallStoreProc    调用系统存储过程并影响生成一个DataSet对象
            /// <summary>
            /// 调用系统存储过程并影响生成一个DataSet对象
            /// </summary>
            /// <param name = "strSysSPName">“存储过程枚举类型”</param>
            /// <param name="InParaName">"in参数名字"</param>
            /// <param name = "InParamValue">“in参数列表”</param>
            /// <param name="OutParaName">"out参数名字"</param>
            /// <param name="OutParaValue">"out参数值"</param>
            /// <param name="IType">"out参数的类型"</param>
            /// <param name=" oDs">"引用的DataSet"</param>
            /// <returns>成功则返回1,否则返回-1或错误代码</returns>
            public int CallStoreProc(string strSysSPName, IList InParaName, IList InParamValue, IList OutParaName, ref object[] OutParaValue, DBTYPE[] IType, ref DataSet oDs)
            {
                SqlCommand oCmd = new SqlCommand();
    
                oCmd.CommandText = strSysSPName;
                oCmd.CommandType = CommandType.StoredProcedure;
    
                int status = -1;
    
                #region in参数的建立
                if (InParamValue != null && InParaName != null)
                {
                    //建立in参数
                    for (int i = 0; i < InParamValue.Count; i++)
                    {
                        SqlParameter oPara = new SqlParameter();
    
                        //调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
                        if (InParaName[i] != null)
                        {
                            oPara = SQLParamHelper.CreateParameterWithValue(InParaName[i].ToString(), InParamValue[i]);
                            oPara.Direction = ParameterDirection.Input;
                            oCmd.Parameters.Add(oPara);
                        }
                    }
                }
                #endregion
    
                #region out参数的建立
    
                if (OutParaName != null && OutParaValue != null && IType != null)
                {
                    //建立in参数
                    for (int i = 0; i < OutParaName.Count; i++)
                    {
                        SqlParameter oPara = new SqlParameter();
    
                        //调用SQLParamHelper的CreateParameterWithValue()方法来生成不同的参数
                        if (OutParaName[i] != null)
                        {
                            oPara = SQLParamHelper.CreateOutParameterWithValue(OutParaName[i].ToString(), IType[i].ToString());
                            oPara.Direction = ParameterDirection.Output;
                            oCmd.Parameters.Add(oPara);
                        }
                    }
                }
    
                #endregion
    
                SqlConnection oCn = new SqlConnection(DBCnStr);
                try
                {
                    oCn.Open();
                }
                catch (Exception oErr)
                {
                    //WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    return -1;
                }
    
                oCmd.Connection = oCn;
    
                //连接数据库和执行存储过程
                try
                {
                    //通过SqlDataAdapter来填充Table
                    SqlDataAdapter oDp = new SqlDataAdapter(oCmd.CommandText.ToString(), oCn);
    
                    //建立SqlDataAdapter与SqlCommand的连接
                    oDp.SelectCommand = oCmd;
                    oDp.DeleteCommand = oCmd;
                    oDp.UpdateCommand = oCmd;
                    oDp.DeleteCommand = oCmd;
                    //
                    oDp.Fill(oDs);
                    #region 取得返回参数的值
                    for (int i = 0; i < OutParaValue.Length; i++)
                    {
                        OutParaValue[i] = oCmd.Parameters[OutParaName[i].ToString()].Value;
                    }
                    #endregion
                    status = 0;
                }
                catch (Exception oErr)
                {
    
                    // WriteFile(oErr.Message);
                    Errlog.AppLog(oErr.Message, ErrorType.MviDataBase);
    
                    status = -1;
                }
                finally
                {
                    if (oCn.State == System.Data.ConnectionState.Open)
                    {
                        oCn.Close();
                    }
                    oCmd = null;
                }
                return status;
            }
            #endregion
    
            #region     GetSqlWhere  产生SQL语句
            /// <summary>
            /// 产生SQL语句
            /// </summary>
            /// <param name="InName">表字段名</param>
            /// <param name="InValue">表字段值</param>
            /// <returns>结果SQL语句</returns>
            public string GetSqlWhere(ArrayList InName, ArrayList InValue)
            {
                DataTable DataTableTmp = new DataTable();
                string StrSqlWhereTmp = "";
                string StrTmp = "";
                string StrName = "";
                string StrValue = "";
    
                if (InName == null || InValue == null)
                {
                    return null;
                }
                for (int i = 0; i < InName.Count; i++)
                {
                    StrTmp = InName[i].ToString();
                    if (StrTmp.Substring(0, 2) == "#S") //开始时间
                    {
                        StrName = StrTmp.Substring(2) + " >= ";
                        StrValue = "to_date('" + InValue[i].ToString() + "','yyyy-mm-dd HH24:Mi:ss')";
                    }
                    else if (StrTmp.Substring(0, 2) == "#E")//结束时间
                    {
                        StrName = StrTmp.Substring(2) + " < ";
                        StrValue = "to_date('" + InValue[i].ToString() + "','yyyy-mm-dd HH24:Mi:ss')";
                    }
                    else if (StrTmp.Substring(0, 2) == "#N")//<>条件
                    {
                        StrName = StrTmp.Substring(2) + " <> ";
                        StrValue = InValue[i].ToString();
                    }
                    else if (StrTmp.Substring(0, 2) == "#D")//大于条件
                    {
                        StrName = StrTmp.Substring(2) + ">";
                        StrValue = InValue[i].ToString();
                    }
                    else if (StrTmp.Substring(0, 2) == "#X")//小于条件
                    {
                        StrName = StrTmp.Substring(2) + "<";
                        StrValue = InValue[i].ToString();
                    }
                    else if (StrTmp.Substring(0, 2) == "#I")//IN条件
                    {
                        StrName = StrTmp.Substring(2) + " IN (";
                        StrValue = InValue[i].ToString() + ")";
                    }
                    else if (StrTmp.Substring(0, 2) == "#0")//没有条件
                    {
                        return InValue[i].ToString();
                    }
                    else        //等于条件
                    {
                        StrName = StrTmp + "=";
                        StrValue = InValue[i].ToString();
                    }
    
                    StrSqlWhereTmp = StrSqlWhereTmp + StrName + StrValue + " and ";
                }
    
                StrSqlWhereTmp = StrSqlWhereTmp.Substring(0, StrSqlWhereTmp.Length - 5);
                return StrSqlWhereTmp;
            }
            #endregion
        }
        #endregion
       
        #region    class SQLParamHelper
        /// <summary>
        /// SQLParamHelper
        /// </summary>
        internal class SQLParamHelper
        {
            #region 创建出入参数
            /// <summary>
            /// 根据输入的OBJECT对象生成不同的参数
            /// </summary>
            /// <param name="name">“参数名字”</param>
            /// <param name="nValue">“参数值”</param>
            /// <returns></returns>
            public static SqlParameter CreateParameterWithValue(string name, object nValue)
            {
                string strType;
                SqlParameter param;
                int intLenth = 0;
    
                if (nValue != null)
                {
                    strType = nValue.GetType().ToString();
                    intLenth = nValue.ToString().Trim().Length;
                    if (intLenth > 0)
                    {
                        switch (strType)
                        {
                            case "System.Int32":
                                {
                                    param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.Double":
                                {
                                    param = new SqlParameter(name, SqlDbType.Decimal);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.Single":
                                {
                                    param = new SqlParameter(name, SqlDbType.Float);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.UInt64":
                                {
                                    param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.Int64":
                                {
                                    param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.Decimal":
                                {
                                    param = new SqlParameter(name, SqlDbType.Decimal, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.Object":
                                {
                                    param = new SqlParameter(name, SqlDbType.Real, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.UInt16":
                                {
                                    param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.Int16":
                                {
                                    param = new SqlParameter(name, SqlDbType.BigInt, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.Boolean":
                                {
                                    param = new SqlParameter(name, SqlDbType.Binary);
                                    param.Direction = ParameterDirection.Input;
                                    bool bolTemp = (bool)nValue;
                                    param.Value = (bolTemp == true ? 1 : 0);
                                    break;
                                }
                            case "System.String":
                                {
                                    param = new SqlParameter(name, SqlDbType.VarChar, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.DateTime":
                                {
                                    param = new SqlParameter(name, SqlDbType.DateTime, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.Char":
                                {
                                    param = new SqlParameter(name, SqlDbType.Char, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.SByte":
                                {
                                    param = new SqlParameter(name, SqlDbType.Bit, intLenth);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System_XMl":
                                {
                                    param = new SqlParameter(name, SqlDbType.Xml, 300);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            case "System.Text":
                                {
                                    if (intLenth < 2000)
                                    {
                                        param = new SqlParameter(name, SqlDbType.Text, intLenth);
                                    }
                                    else
                                    {
                                        param = new SqlParameter(name, SqlDbType.Text);
                                    }
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                            default:
                                {
                                    param = new SqlParameter(name, SqlDbType.Variant);
                                    param.Direction = ParameterDirection.Input;
                                    param.Value = nValue;
                                    break;
                                }
                        }
                        param.Direction = ParameterDirection.Input;
                    }
                    else
                    {
                        param = new SqlParameter(name, SqlDbType.VarChar, 10);
                        param.Direction = ParameterDirection.Input;
                        param.Value = "";
                    }
                }
                else
                {
                    param = new SqlParameter(name, SqlDbType.Variant);
                    param.Direction = ParameterDirection.Input;
                    param.Value = null;
                }
                return param;
    
            }
            #endregion
    
            #region    CreateOutParameterWithValue    建立输出参数
            /// <summary>
            /// 建立输出参数
            /// </summary>
            /// <param name="name">"参数名"</param>
            /// <param name="objType">"参数类型"</param>
            /// <returns></returns>
            public static SqlParameter CreateOutParameterWithValue(string name, string objType)
            {
                string strType = objType;
    
                SqlParameter param;
    
                switch (strType)
                {
                    case "System_Object":
                        {
                            param = new SqlParameter(name, SqlDbType.Variant);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_Single":
                        {
                            param = new SqlParameter(name, SqlDbType.Float);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_UInt64":
                        {
                            param = new SqlParameter(name, SqlDbType.BigInt);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_Int64":
                        {
                            param = new SqlParameter(name, SqlDbType.BigInt);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_Int32":
                        {
                            param = new SqlParameter(name, SqlDbType.Int);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_UInt16":
                        {
                            param = new SqlParameter(name, SqlDbType.SmallInt);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_Int16":
                        {
                            param = new SqlParameter(name, SqlDbType.SmallInt);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_Double":
                        {
                            param = new SqlParameter(name, SqlDbType.Float);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_Decimal":
                        {
                            param = new SqlParameter(name, SqlDbType.Decimal);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_Boolean":
                        {
                            param = new SqlParameter(name, SqlDbType.Binary);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_String":
                        {
                            param = new SqlParameter(name, SqlDbType.VarChar, 200);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_DateTime":
                        {
                            param = new SqlParameter(name, SqlDbType.DateTime);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_Char":
                        {
                            param = new SqlParameter(name, SqlDbType.Char, 100);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_SByte":
                        {
                            param = new SqlParameter(name, SqlDbType.NChar, 30);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_Text":
                        {
                            param = new SqlParameter(name, SqlDbType.Text, 300);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    case "System_XMl":
                        {
                            param = new SqlParameter(name, SqlDbType.Xml, 300);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                    default:
                        {
                            param = new SqlParameter(name, SqlDbType.Variant);
                            param.Direction = ParameterDirection.Output;
                            break;
                        }
                }
                return param;
    
            }
            #endregion CreateOutParams
        
            #region CreateParameter    创建形式参数
            /// <summary>
            /// 转换参数为SQL语句的表达式
            /// </summary>
            /// <param name="nValue">传入的Object类型值</param>
            /// <returns>已经转换好的String</returns>
            public static string CreateParameter(SqlParameter oValue)
            {
                string strTemPara;
                object oPara_Value = oValue.Value;
    
                if (oPara_Value != null)
                {
                    string strType = oValue.SqlDbType.ToString();
                    switch (strType)
                    {
                        case "VarChar":
                            {
                                strTemPara = "'" + CheckMark(oPara_Value) + "'";
                                break;
                            }
                        case "Char":
                            {
                                strTemPara = "'" + CheckMark(oPara_Value) + "'";
                                break;
                            }
                        case "NChar":
                            {
                                strTemPara = "'" + CheckMark(oPara_Value) + "'";
                                break;
                            }
                        case "NVarChar":
                            {
                                strTemPara = "'" + CheckMark(oPara_Value) + "'";
                                break;
                            }
                        //日期型
                        case "DateTime":
                            {
                                DateTime dt = new DateTime();
                                dt = (DateTime)oPara_Value;
    
                                string strTP = "'" + dt.Year + "-" + dt.Month + "-" + dt.Day;
                                strTP += " " + dt.Hour.ToString() + ":" + dt.Minute.ToString();
                                strTP += ":" + dt.Second.ToString() + "',";
                                strTemPara = "TO_DATE(" + strTP + "'yyyy-mm-dd hh24:mi:ss'" + ")";
                                break;
                            }
                        case "LongVarChar":
                            {
                                strTemPara = "'" + CheckMark(oPara_Value) + "'";
                                break;
                            }
                        case "Clob":
                            {
                                strTemPara = "'" + CheckMark(oPara_Value) + "'";
                                break;
                            }
                        default:
                            {
                                strTemPara = oPara_Value.ToString();
                                break;
                            }
                    }
                }
                else
                {
                    //将null传入
                    strTemPara = "null";
                }
                return strTemPara;
            }
            #endregion
    
            #region   CheckMark   替换object的'为''并转换为String
            /// <summary>
            /// 替换object的'为''并转换为String
            /// </summary>
            /// <param name="objIn">传入的Object类型</param>
            /// <returns>已经替换'为''的String</returns>
            private static string CheckMark(object objIn)
            {
                string strTmp = objIn.ToString();
    
                return strTmp.Replace("'", "''");  // modified by apenni 06.01.02
    
                //string strRet = "";
                //for (int i = 0; i < strTmp.Length; i++)
                //{
                //    if (strTmp[i].ToString() == "'")
                //    {
                //        strRet += "''";
                //    }
                //    else
                //    {
                //        strRet += strTmp[i].ToString();
                //    }
                //}
                //return strRet;
            }
            #endregion
        }
        #endregion
    
  • 相关阅读:
    【用例篇】Xmind转为csv 导入禅道
    idea替换当前文件内容
    配置IDEA项目JDK环境
    git 只提交部分修改文件
    `总结TESTNG与JUNIT的异同
    POST请求BODY格式区别
    【转】使用AllureReport生成测试报告
    Springboot+Redis 配置和使用
    【转】git branch 命令查看分支、删除远程分支、本地分支
    [转]Json字符串和map和HashMap之间的转换
  • 原文地址:https://www.cnblogs.com/joma/p/4029808.html
Copyright © 2020-2023  润新知