zoukankan      html  css  js  c++  java
  • 面向对象代码

    using   System;  
      using   System.Data;  
      using   System.Data.SqlClient;  
      using   System.Configuration;  
       
      namespace   Hugo.BookShop.DbBase  
      {  
      ///   <summary>  
      ///   base.  
      ///   </summary>  
      public   abstract   class   Base  
      {  
       
      #region   "Fields   of   base   calss"  
       
      ///   <summary>  
      ///   connecting   to   Database  
      ///   </summary>  
      protected   static   string   strConn   =   ConfigurationSettings.AppSettings["strConnection"];  
       
      ///   <summary>  
      ///   SQL   command  
      ///   </summary>  
      protected   static   string   strSQL;  
       
      #endregion  
       
       
      #region   "Properties   of   base   class"  
      private   int   m_ID;  
      private   string   m_Name;  
       
      ///   <summary>  
      ///   Property:ID  
      ///   </summary>  
      public   int   ID  
      {  
      get  
      {  
      return   m_ID;  
      }  
      set  
      {  
      m_ID   =   value;  
      }  
      }  
       
       
      ///   <summary>  
      ///   name  
      ///   </summary>  
      public   string   Name  
      {  
      get  
      {  
      return   m_Name;  
      }  
      set  
      {  
      m_Name   =   value;  
      }  
      }  
       
      #endregion  
       
       
      #region   "Functions   of   base   class"  
      public   Base()  
      {  
      //  
      //   TODO:   Add   constructor   logic   here  
      //  
      }  
       
      ///   <summary>  
      ///   executing   SQL   commands  
      ///   </summary>  
      ///   <param   name="strSQL">string</param>  
      ///   <returns>return   int</returns>  
      protected   static   int   ExecuteSql(string   strSQL)  
      {  
      SqlConnection   myCn   =   new   SqlConnection(strConn);  
      SqlCommand   myCmd   =   new   SqlCommand(strSQL,myCn);  
      try  
      {  
      myCn.Open();  
      myCmd.ExecuteNonQuery();  
      return   0;  
      }  
      catch(System.Data.SqlClient.SqlException   e)  
      {  
      throw   new   Exception(e.Message);  
      }  
      finally  
      {  
      myCmd.Dispose();  
      myCn.Close();  
      }  
      }  
       
       
      ///   <summary>  
      ///executing   SQL   commands  
      ///   </summary>  
      ///   <param   name="strSQL">要执行的SQL语句,为字符串类型string</param>  
      ///   <returns>返回执行情况,整形int</returns>  
      protected   static   int   ExecuteSqlEx(string   strSQL)  
      {  
      SqlConnection   myCn   =   new   SqlConnection(strConn);  
      SqlCommand   myCmd   =   new   SqlCommand(strSQL,myCn);  
       
      try  
      {  
      myCn.Open();  
      SqlDataReader   myReader   =   myCmd.ExecuteReader();  
      if(myReader.Read())  
      {  
      return   0;  
      }  
      else  
      {  
      return   1;  
      }  
      }  
      catch(System.Data.SqlClient.SqlException   e)  
      {  
      throw   new   Exception(e.Message);  
      }  
      finally  
      {  
      myCmd.Dispose();  
      myCn.Close();  
      }  
      }  
       
       
      ///   <summary>  
      ///   get   dataset  
      ///   </summary>  
      ///   <param   name="strSQL">(string)</param>  
      ///   <returns>(DataSet)</returns>  
      protected   static   DataSet   ExecuteSql4Ds(string   strSQL)  
      {  
      SqlConnection   myCn   =   new   SqlConnection(strConn);  
      try  
      {  
      myCn.Open();  
      SqlDataAdapter   sda   =   new   SqlDataAdapter(strSQL,myCn);  
      DataSet   ds   =   new   DataSet("ds");  
      sda.Fill(ds);  
      return   ds;  
      }  
      catch(System.Data.SqlClient.SqlException   e)  
      {  
      throw   new   Exception(e.Message);  
      }  
      finally  
      {  
      myCn.Close();  
      }  
      }  
       
       
      ///   <summary>  
      ///   get   single   value  
      ///   </summary>  
      ///   <param   name="strSQL">(string)</param>  
      ///   <returns>(int)</returns>  
      protected   static   int   ExecuteSql4Value(string   strSQL)  
      {  
      SqlConnection   myCn   =   new   SqlConnection(strConn);  
      SqlCommand   myCmd   =   new   SqlCommand(strSQL,myCn);  
      try  
      {  
      myCn.Open();  
      object   r   =   myCmd.ExecuteScalar();  
      if(Object.Equals(r,null))  
      {  
      throw   new   Exception("value   unavailable!");  
      }  
      else  
      {  
      return   (int)r;  
      }  
      }  
      catch(System.Data.SqlClient.SqlException   e)  
      {  
      throw   new   Exception(e.Message);  
      }  
      finally  
      {  
      myCmd.Dispose();  
      myCn.Close();  
      }  
      }  
       
       
      ///   <summary>  
      ///   get   object  
      ///   </summary>  
      ///   <param   name="strSQL">(string)</param>  
      ///   <returns>(object)</returns>  
      protected   static   object   ExecuteSql4ValueEx(string   strSQL)  
      {  
      SqlConnection   myCn   =   new   SqlConnection(strConn);  
      SqlCommand   myCmd   =   new   SqlCommand(strSQL,myCn);  
      try  
      {  
      myCn.Open();  
      object   r   =   myCmd.ExecuteScalar();  
      if(Object.Equals(r,null))  
      {  
      throw   new   Exception("object   unavailable!");  
      }  
      else  
      {  
      return   r;  
      }  
      }  
      catch(System.Data.SqlClient.SqlException   e)  
      {  
      throw   new   Exception(e.Message);  
      }  
      finally  
      {  
      myCmd.Dispose();  
      myCn.Close();  
      }  
      }  
       
       
      ///   <summary>  
      ///   execute   multipul   SQL   commands    
      ///   </summary>  
      ///   <param   name="strSQLs">string</param>  
      ///   <returns>int</returns>  
      protected   static   int   ExecuteSqls(string[]   strSQLs)  
      {  
      SqlConnection   myCn   =   new   SqlConnection(strConn);  
      SqlCommand   myCmd   =   new   SqlCommand();  
      int   j=strSQLs.Length;  
       
      try  
      {  
      myCn.Open();  
      }  
      catch(System.Data.SqlClient.SqlException   e)  
      {  
      throw   new   Exception(e.Message);  
      }  
      SqlTransaction   myTrans   =   myCn.BeginTransaction();  
       
      try  
      {  
      myCmd.Connection   =   myCn;  
      myCmd.Transaction   =   myTrans;  
       
      foreach(string   str   in   strSQLs)  
      {  
      myCmd.CommandText   =   str;  
      myCmd.ExecuteNonQuery();  
      }  
      myTrans.Commit();  
      return   0;  
      }  
      catch(System.Data.SqlClient.SqlException   e)  
      {  
      myTrans.Rollback();  
      throw   new   Exception(e.Message);  
      }  
      finally  
      {  
      myCmd.Dispose();  
      myCn.Close();  
      }  
      }  
       
      #endregion  
      }  
      }  
    ============================================
    using   System;  
      using   System.Data;  
      using   System.Data.SqlClient;  
      using   System.Collections;  
       
      namespace   Hugo.BookShop  
      {  
      ///   <summary>  
      ///   Order   description。  
      ///   </summary>  
      public   class   Order:DbBase.Base,IEnumerator  
      {  
      private   ArrayList   allBooks   =   new   ArrayList();  
      private   int   userId;  
      //private   byte   status;  
      private   DateTime   date   =   System.DateTime.Now.Date;  
      private   int   position=-1;  
       
      public   Order()  
      {  
       
      }  
       
       
      #region   Properties   of   order   class  
       
      object   IEnumerator.Current  
      {  
      get  
      {  
      return   allBooks[position];  
      }  
      }  
       
       
      ///   <summary>  
      ///   set   detail   of   order   form  
      ///   </summary>  
      public   int   Count  
      {  
      get  
      {  
      strSQL   =   "Select   Count(*)   From   OrderDetails   Where   OrderId="   +   this.ID;    
      try  
      {  
      return   ExecuteSql4Value(strSQL);  
      }  
      catch  
      {  
      return   -1;  
      }  
      }  
      }  
       
      ///   <summary>  
      ///   sum  
      ///   </summary>  
      public   double   Total  
      {  
      get  
      {  
      strSQL   =   "Select   Sum(A.Price   *   A.Discount   *   C.Quantity)   as   Total   From   Book   A,Orders   B   ,OrderDetails   C   Where   A.id   =   C.BookId   and   B.id   =   C.OrderId   And   C.OrderId="   +   this.ID;    
      try  
      {  
      return   (double)ExecuteSql4ValueEx(strSQL);  
      }  
      catch  
      {  
      return   0.0;  
      }  
      }  
      }  
       
       
      ///   <summary>  
      ///   User   ID  
      ///   </summary>  
      public   int   UserId  
      {  
      get  
      {  
      return   userId;  
      }  
      set  
      {  
      userId   =   value;  
      }  
      }  
      #endregion  
       
       
      #region   Functions   of   order   class  
       
      ///   <summary>  
      ///   return   details   of   this   order  
      ///   </summary>  
      ///   <returns></returns>  
      public   ICollection   GetItems()  
      {  
      return   allBooks;  
      }  
       
       
       
      public   OrderDetails   this[int   index]  
      {  
      get  
      {  
      return   (OrderDetails)allBooks[index];  
      }  
      }  
       
       
      public   void   Clear()  
      {  
      allBooks.Clear();  
      }  
       
       
      public   void   Add(OrderDetails   value)  
      {  
      allBooks.Add(value);  
      }  
       
       
      bool   IEnumerator.MoveNext()  
      {  
      position++;  
      if(position>=allBooks.Count)  
      {  
      return   false;  
      }  
      else  
      {  
      return   true;  
      }  
      }  
       
       
      void   IEnumerator.Reset()  
      {  
      position   =   -1;  
      }  
       
       
      public   void   RemoveAt(int   index)  
      {  
      allBooks.RemoveAt(index);  
      }  
       
       
      public   void   Remove(int   itemId)  
      {  
      foreach(OrderDetails   item   in   allBooks)  
      {  
      if(itemId   ==   item.BookId)  
      {  
      allBooks.Remove(item);  
      return;  
      }  
      }  
      }  
       
       
      public   int   Have(int   userId)  
      {  
      try  
      {  
      string   []   arrSQL   =   new   String[allBooks.Count];  
      strSQL   =   "Insert   into   Orders(UserId)   values("   +   userId.ToString()   +   ")";  
      ExecuteSql(strSQL);  
      strSQL   =   "Select   Max(Id)   From   Orders";  
      int   orderId   =   ExecuteSql4Value(strSQL);  
       
      System.Text.StringBuilder   sb   =   new   System.Text.StringBuilder();  
      Hugo.BookShop.OrderDetails   item   =   new   Hugo.BookShop.OrderDetails();  
      for(int   i=0;i<allBooks.Count;i++)  
      {  
      item   =   (Hugo.BookShop.OrderDetails)allBooks[i];  
      sb.Append("Insert   into   OrderDetails(OrderId,BookId,Quantity)   values(");  
      sb.Append(orderId.ToString());  
      sb.Append(",");  
      sb.Append(item.BookId.ToString());  
      sb.Append(",");  
      sb.Append(item.Quantity.ToString());  
      sb.Append(")");  
      arrSQL[i]   =   sb.ToString();  
      sb.Remove(0,sb.Length);  
      }  
       
      ExecuteSqls(arrSQL);  
      return   orderId;  
      }  
      catch  
      {  
      throw   new   Exception("Order   books   FAILED!");  
      }  
      }  
       
       
      public   static   bool   Deal(int   orderId)  
      {  
      strSQL   =   "Update   OrdersV   Set   Status   =1   Where   Id="   +   orderId.ToString();  
      try  
      {  
      ExecuteSql4Ds(strSQL);  
      strSQL   =   "Update   Book   set   Sales=Sales+1   Where   id   in(SELECT   b.BookId   FROM   Orders   a   INNER   JOIN   OrderDetails   b   ON   a.Id   =   b.OrderId   AND   a.Id   =   "   +   orderId.ToString()   +   ")";  
      ExecuteSql4Ds(strSQL);  
      return   true;  
      }  
      catch  
      {  
      throw   new   Exception("Deal   with   the   order   failed!");  
      }  
      }  
       
       
      public   static   DataSet   GetOrder(int   orderId)  
      {  
      strSQL   =   "SELECT   UserId,   OrderDate,CASE   WHEN   Status   =   '1'   THEN   'dealt'   ELSE   'on   progress'   END   AS   Status   FROM   Orders   Where   Id="   +   orderId.ToString();  
      try  
      {  
      return   ExecuteSql4Ds(strSQL);  
      }  
      catch  
      {  
      throw   new   Exception("Get   order   failed!");  
      }  
      }  
       
       
      public   static   DataSet   GetOrders()  
      {  
      strSQL   =   "SELECT   *   FROM   OrdersV   Where   Status=0   or   Status   IS   NULL";  
      try  
      {  
      return   ExecuteSql4Ds(strSQL);  
      }  
      catch  
      {  
      throw   new   Exception("Get   orders   failed!");  
      }  
      }  
       
       
      public   static   DataSet   GetOrders(int   userId)  
      {  
      strSQL   =   "SELECT   Id,UserId,   OrderDate,CASE   WHEN   Status   =   '1'   THEN   'dealt'   ELSE   'on   progress'   END   AS   Status   FROM   Orders   Where   UserId="   +   userId.ToString();  
      try  
      {  
      return   ExecuteSql4Ds(strSQL);  
      }  
      catch  
      {  
      throw   new   Exception("Get   order   failed!");  
      }  
      }  
       
       
      public   static   DataSet   GetDetails(int   orderId)  
      {  
      strSQL   =   "Select   *   from   DetailsV   Where   orderId="   +   orderId.ToString();  
      try  
      {  
      return   ExecuteSql4Ds(strSQL);  
      }  
      catch  
      {  
      throw   new   Exception("Get   order   details   failed!");  
      }  
      }  
       
      #endregion  
      }  
      }
  • 相关阅读:
    Java异常处理和设计
    一次qps测试实践
    Alternate Task UVA
    Just Another Problem UVA
    Lattice Point or Not UVA
    Play with Floor and Ceil UVA
    Exploring Pyramids UVALive
    Cheerleaders UVA
    Triangle Counting UVA
    Square Numbers UVA
  • 原文地址:https://www.cnblogs.com/zxjyuan/p/1551199.html
Copyright © 2011-2022 走看看