數據庫連接封裝類2


using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace ASPNETSZ4
{
    
/// <summary>
    
/// Pub 的摘要說明。
    
/// </summary>

    public class Pub
    
{
        
// 數據庫公用變量
        public SqlConnection SqlConnection1; 
        
public SqlCommand SqlCommand1;
        
public SqlDataAdapter SqlDataAdapter1;
        
public SqlDataAdapter SqlDataAdapter2;
        
public SqlDataReader SqlDataReader1;
        
public SqlCommandBuilder SqlCommandBuilder1;
        
public DataSet DataSet1;
        
public DataTable DataTable1;
        
public DataRow DataRow1;

        
// 非數據庫公用變量
        public string LoginName;        // 登錄用戶
        public string SiteName = System.Configuration.ConfigurationSettings.AppSettings["SiteName"];            // 站點名稱
        public string SiteNav;            // 站點導航
        public string sTitle = System.Configuration.ConfigurationSettings.AppSettings["SiteName"];            // 站點標題

        
// 頁面導航
        public int PageSize = 5;        // 每頁顯示記錄數
        public int RecordCount, PageCount, CurrentPage;

        
public Pub()
        
{
            
//
            
// TODO: 在此處添加構造函數邏輯
            
//
        }


        
// 0.——————————————————通用操作——————————————————————

        
public void NavInfo(string sMsg, string sMsgURL, string sMsgTarget)
        
{
            sTitle 
= sTitle + " -- " + sMsg;
            SiteNav 
= "<a href=./>" + SiteName +"</a>";
        }



        
// 1.——————————————————數據庫操作——————————————————————

        
/// <summary>
        
/// 連接打開
        
/// </summary>

        public void ConnOpen()
        
{   
            SqlConnection1 
= new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["Conn"]);
            SqlConnection1.Open();
        }


        
/// <summary>
        
/// 連接關閉(之前清除DateSet1中的數據)
        
/// </summary>

        public void ConnClose()
        
{
            
if (DataSet1 != null)
            
{
                DataSet1.Clear();
            }

            
if (SqlConnection1 != null)
            
{
                SqlConnection1.Close();
            }

        }


        
/// <summary>
        
/// 建立DataSet對象,用記錄填充或構架(如果必要)DataSet對象,DataSet即是數據在內存的緩存
        
/// </summary>
        
/// <param name="sSQL">打開表Sql語句</param>

        public void Fill(string sSQL)
        
{      
            ConnOpen();
            SqlDataAdapter1 
= new SqlDataAdapter(sSQL, SqlConnection1);
            DataSet1 
= new DataSet();
            SqlDataAdapter1.Fill(DataSet1);    
        }


        
/// <summary>
        
/// 引用存儲過程構造DataSet
        
/// </summary>
        
/// <param name="sp">要引用的存儲過程</param>

        public void FillDataSet(string sp)
        
{      
            ConnOpen();
            SqlDataAdapter1 
= new SqlDataAdapter(sp, SqlConnection1);
            DataSet1 
= new DataSet();
            SqlDataAdapter1.Fill(DataSet1);
        }


        
/// <summary>
        
/// 建立DataSet對象,用記錄填充或構架(如果必要)DataSet對象,DataSet即是數據在內存的緩存
        
/// </summary>
        
/// <param name="TableName">用於表映謝的源表的名稱</param>
        
/// <param name="sql">打開表Sql語句</param>

        public void Fill(string TableName,string sql)
        
{  
            ConnOpen();
            SqlDataAdapter1 
= new SqlDataAdapter(sql, SqlConnection1);
            DataSet1 
= new DataSet();
            SqlDataAdapter1.Fill(DataSet1, TableName);
        }


        
/// <summary>
        
/// 給DataSet對象增加映謝表
        
/// </summary>
        
/// <param name="sSQL">SQL語句</param>

        public void FillAdd(string sSQL)
        
{
            SqlDataAdapter1 
= new SqlDataAdapter(sSQL, SqlConnection1);
            SqlDataAdapter1.Fill(DataSet1);
        }


        
/// <summary>
        
/// 給DataSet對象增加映謝表
        
/// </summary>
        
/// <param name="sSQL">SQL語句</param>

        public void FillAdd(string TableName, string sSQL)
        
{
            SqlDataAdapter1 
= new SqlDataAdapter(sSQL, SqlConnection1);
            SqlDataAdapter1.Fill(DataSet1, TableName);
        }


        
/// <summary>
        
/// 獲取最大值
        
/// </summary>
        
/// <param name="fID"></param>
        
/// <param name="TableName"></param>
        
/// <returns></returns>

        public string GetMaxId(string fID, string TableName)
        
{
            
string sKey;
            
string sSQL="SELECT TOP 1 " + fID + " FROM " + TableName + " ORDER BY " + fID + " DESC";
            
if (GetRowCount(sSQL) == 0)
            
{
                sKey
="1";
            }

            
else
            
{
                GetRowRecord(sSQL);
                sKey 
= (int.Parse(DataRow1[fID].ToString()) + 1).ToString(); // 獲得數據庫表key值
            }

            
return sKey;
        }


        
/// <summary>
        
/// 獲得包含在DataSet對象的映謝表集合中的index爲0的映謝表
        
/// </summary>
        
/// <param name="sSQL">SQL語句</param>

        public void GetTable(string sSQL)
        
{
            Fill(sSQL);
            DataTable1 
= DataSet1.Tables[0];
        }


        
/// <summary>
        
/// 獲得符合該Sql語句的表記錄數
        
/// </summary>
        
/// <param name="sSQL">SQL語句</param>
        
/// <returns>返回表記錄條數</returns>

        public int GetRowCount(string sSQL)
        
{
            Fill(sSQL);
            
try
            
{
                
int Count = DataSet1.Tables[0].Rows.Count;
                ConnClose();
                
return Count;
            }

            
catch
            
{
                ConnClose();
                
return 0;
            }

        }


        
/// <summary>
        
/// 通過傳Sql語句關鍵key值獲得表中一行的數據
        
/// </summary>
        
/// <param name="sSQL">帶關鍵Key值參數的SQL語句</param>

        public void GetRowRecord(string sSQL)
        
{
            Fill(sSQL);
            DataRow1 
= DataSet1.Tables[0].Rows[0];
            ConnClose();
        }


        
/// <summary>
        
/// 執行Transact-SQL語句,對數據庫記錄做插入,修改,刪除等操作
        
/// </summary>
        
/// <param name="sSQL">Transact-SQL語句</param>

        public void ExeSql(string sSQL)
        
{   
            ConnOpen();
            SqlCommand1 
= new SqlCommand(sSQL, SqlConnection1);
            SqlCommand1.ExecuteNonQuery();
            SqlCommand1.Dispose();
        }


        
// 2.——————————————————綁定控件——————————————————————
        
        
/// <summary>
        
/// 綁定DataGrid控件並顯示數據
        
/// </summary>
        
/// <param name="sSQL">Sql語句</param>
        
/// <param name="DataGrid1">DataGrid控件id值</param>

        public void BindDataGrid(string sSQL, DataGrid DataGrid1)
        
{
            Fill(sSQL);
            DataGrid1.DataSource 
= DataSet1.Tables[0].DefaultView;
            DataGrid1.DataBind();
        }


        
/// <summary>
        
/// 綁定DataList控件並顯示數據
        
/// </summary>
        
/// <param name="sSQL">Sql語句</param>
        
/// <param name="DataList1">DataList控件ID值</param>

        public void BindDataList(string sSQL, DataList DataList1)
        
{
            Fill(sSQL);
            DataList1.DataSource 
= DataSet1.Tables[0].DefaultView;
            DataList1.DataBind();
        }


        
/// <summary>
        
/// 綁定Repeater控件並顯示數
        
/// </summary>
        
/// <param name="sSQL">Sql語句</param>
        
/// <param name="Repeater1">Repeater控件ID值</param>

        public void BindRepeater(string sSQL,Repeater Repeater1)
        
{
            Fill(sSQL);
            Repeater1.DataSource 
= DataSet1.Tables[0].DefaultView;
            Repeater1.DataBind();
        }


        
// 3.——————————————————操作業務——————————————————————

        
/// <summary>
        
/// 返回當前用戶的購物車ID
        
/// </summary>
        
/// <returns>返回當前用戶的購物車ID</returns>

        public String GetShoppingCartID() 
        
{
            
//當前 HTTP 請求獲取 HttpContext 對象。
            System.Web.HttpContext Context = System.Web.HttpContext.Current;
            
//user Id 的分配有二種情況
            
//1. 如果該用戶已經通過驗證後登錄了系統, 那麼以該用戶的 CustomerId作爲購物車ID
            if (Context.User.Identity.Name != ""
            
{
                
return Context.User.Identity.Name;
            }

            
//2. 否則, 如果瀏覽器Cookie中已經分配給該用戶一個購物車ID
            
//(1)cookies return shoppingCartId (2)set tempCartId of Guid and return this values
            if (Context.Request.Cookies["ShoppingCartID"!= null

            
{
                
return Context.Request.Cookies["ShoppingCartID"].Value;
            }

            
else 
            
{
                
// 利用System.Guid Class產生一個隨機GUID(全球唯一標識號)
                Guid TempCartId = Guid.NewGuid();
                
// 回寫到客戶端指定的cookie中
                Context.Response.Cookies["ShoppingCartID"].Value = TempCartId.ToString();
                
// 同時返回 TempCartId
                return TempCartId.ToString();
            }

        }


        
/// <summary>
        
/// 顯示記錄列表.最新消息
        
/// </summary>
        
/// <returns></returns>

        public SqlDataReader spNewsList() 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spNewsList", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;
            SqlDataReader result 
= SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);
            
return result;
        }


        
/// <summary>
        
/// 用戶登錄
        
/// </summary>
        
/// <param name="sEmail">登錄時的電子郵件</param>
        
/// <param name="sPassword">相應的密碼</param>
        
/// <returns></returns>

        public String spCustomersLogin(string sEmail, string sPassword) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spCustomersLogin", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Param1 
= new SqlParameter("@Email", SqlDbType.VarChar, 100);
            SqlParameter Param2 
= new SqlParameter("@Password", SqlDbType.VarChar, 50);
            SqlParameter Param3 
= new SqlParameter("@ID", SqlDbType.Int, 4);
            SqlCommand1.Parameters.Add(Param1);
            SqlCommand1.Parameters.Add(Param2);
            SqlCommand1.Parameters.Add(Param3);
            Param1.Value 
= sEmail;
            Param2.Value 
= sPassword;
            
//不經常用要注意
            Param3.Direction = ParameterDirection.Output;

            SqlCommand1.ExecuteNonQuery();
            
//對於@ID的處理
            int ID = (int)(Param3.Value);
            
if (ID == 0)
                
return null;
            
else
                
return ID.ToString();
        }

      

        
/// <summary>
        
/// 更新密碼
        
/// </summary>
        
/// <param name="sEmail">登錄時的電子郵件</param>
        
/// <param name="sPassword">相應的密碼</param>
        
/// <param name="sPasswordNew">新的密碼</param>
        
/// <returns></returns>

        public String spCustomersUpdatePassword(string sEmail, string sPassword, string sPasswordNew) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spCustomersUpdatePassword", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;
            
//set parameters
            SqlParameter Param1 = new SqlParameter("@Email", SqlDbType.VarChar, 100);
            SqlParameter Param2 
= new SqlParameter("@PasswordOld", SqlDbType.VarChar, 50);
            SqlParameter Param3 
= new SqlParameter("@PasswordNew", SqlDbType.VarChar, 50);
            SqlParameter Param4 
= new SqlParameter("@Result", SqlDbType.VarChar, 100);
            Param1.Value 
= sEmail;
            Param2.Value 
= sPassword;
            Param3.Value 
= sPasswordNew;
            SqlCommand1.Parameters.Add(Param1);
            SqlCommand1.Parameters.Add(Param2);
            SqlCommand1.Parameters.Add(Param3);
            SqlCommand1.Parameters.Add(Param4);
            Param4.Direction 
= ParameterDirection.Output;

            SqlCommand1.ExecuteNonQuery();
            
return Param4.Value.ToString();
        }


        
/// <summary>
        
/// 獲取商品列表
        
/// </summary>
        
/// <param name="sStr">查詢字段值, 如貨號或者品名等/按商品分類值</param>
        
/// <param name="T">true/false: 按指定查詢字段值/按商品分類</param>
        
/// <returns></returns>

        public SqlDataReader spProductsSearch(string sStr, bool T) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spProductsSearch", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Para1 
= new SqlParameter("@Search", SqlDbType.VarChar, 255);
            SqlParameter Para2 
= new SqlParameter("@SearchType", SqlDbType.Bit, 1);
            SqlCommand1.Parameters.Add(Para1);
            SqlCommand1.Parameters.Add(Para2);
            Para1.Value 
= sStr;
            Para2.Value 
= T;

            SqlDataReader result 
= SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);
            
return result;
        }

        
        
/// <summary>
        
/// 返回最TOP的幾個商品列表
        
/// </summary>
        
/// <param name="sTop">限定記錄條數</param>
        
/// <param name="sORDERBY">指定排列字段</param>
        
/// <param name="sCategoryID">附加有指定商品類別</param>
        
/// <returns>返回最TOP的幾個商品列表</returns>

        public SqlDataReader spProductsTop(string Top, string OrderBy, string CategoryID) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spProductsTop", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Para1 
= new SqlParameter("@Top", SqlDbType.VarChar, 25);
            SqlParameter Para2 
= new SqlParameter("@OrderBy", SqlDbType.VarChar, 50);
            SqlParameter Para3 
= new SqlParameter("@CategoryID", SqlDbType.VarChar, 25);

            SqlCommand1.Parameters.Add(Para1);
            SqlCommand1.Parameters.Add(Para2);
            SqlCommand1.Parameters.Add(Para3);
            Para1.Value 
= Top;
            Para2.Value 
= OrderBy;
            Para3.Value 
= CategoryID;
            
            SqlDataReader result 
= SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);
            
return result;
        }


        
/// <summary>
        
/// SqlDataAdapter方式的存儲過程.列表.商品.所有.指定OrderBy
        
/// </summary>
        
/// <param name="OrderBy">指定OrderBy</param>

 
        
public void spProductsAllOrderBy(string OrderBy)
        
{
            ConnOpen();
            SqlDataAdapter1 
= new SqlDataAdapter("spProductsTop", SqlConnection1);
            SqlDataAdapter1.SelectCommand.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Para1 
= new SqlParameter("@Top", SqlDbType.VarChar, 25);
            SqlParameter Para2 
= new SqlParameter("@OrderBy", SqlDbType.VarChar, 50);
            SqlParameter Para3 
= new SqlParameter("@CategoryID", SqlDbType.VarChar, 25);
            SqlDataAdapter1.SelectCommand.Parameters.Add(Para1);
            SqlDataAdapter1.SelectCommand.Parameters.Add(Para2);
            SqlDataAdapter1.SelectCommand.Parameters.Add(Para3);
            Para1.Value 
= "100 PERCENT";
            Para2.Value 
= OrderBy;
            Para3.Value 
= "-100";

            DataSet1 
= new DataSet();
            SqlDataAdapter1.Fill(DataSet1);
        }

        
/// <summary>
        
/// 
        
/// </summary>
        
/// <param name="Name">用戶名</param>
        
/// <param name="Password1">密碼</param>
         
        
/// <param name="Email">郵件</param>
        
/// <param name="phone">手機</param>
        
/// <param name="Oicq">QQ</param>
        
/// <param name="Code">郵政編碼</param>
        
/// 

        public void spCustomersRegister(string Name, string Password, string Email, string phone, string Oicq, string Code)
        
{


            ConnOpen();
            SqlDataAdapter1 
= new SqlDataAdapter("spCustomersRegister", SqlConnection1);
            SqlDataAdapter1.SelectCommand.CommandType 
= CommandType.StoredProcedure;

            SqlParameter para1 
= new SqlParameter("@Name", SqlDbType.NVarChar, 50);
            para1.Value 
= Name;
            SqlDataAdapter1.SelectCommand.Parameters.Add(para1);
            SqlParameter para2 
= new SqlParameter("@password", SqlDbType.NVarChar, 50);
            para2.Value 
= Password;
            SqlDataAdapter1.SelectCommand.Parameters.Add(para2);
            SqlParameter para3 
= new SqlParameter("@Email", SqlDbType.NVarChar, 50);
            para3.Value 
= Email;
            SqlDataAdapter1.SelectCommand.Parameters.Add(para3);
            SqlParameter para4 
= new SqlParameter("@phone", SqlDbType.NVarChar, 50);
            para4.Value 
= phone;
            SqlDataAdapter1.SelectCommand.Parameters.Add(para4);
            SqlParameter para5 
= new SqlParameter("@oicq", SqlDbType.NVarChar, 50);
            para5.Value 
= Oicq;
            SqlDataAdapter1.SelectCommand.Parameters.Add(para5);
            SqlParameter para6 
= new SqlParameter("@Code", SqlDbType.NVarChar, 50);
            para6.Value 
= Code;
            SqlDataAdapter1.SelectCommand.Parameters.Add(para6);
        


            DataSet1 
= new DataSet();
            SqlDataAdapter1.Fill(DataSet1);
           


        }
         




  
        
      
        
/// <summary>
        
/// 返回最TOP的幾個鏈接列表
        
/// </summary>
        
/// <param name="sTop">限定記錄條數</param>
        
/// <param name="sORDERBY">指定排列字段</param>
        
/// <returns>返回最TOP的幾個鏈接列表</returns>

        public SqlDataReader spCustomersTop(string sTop, string sORDERBY) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spCustomersTop", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Para1 
= new SqlParameter("@Top", SqlDbType.VarChar, 25);
            SqlParameter Para2 
= new SqlParameter("@ORDERBY", SqlDbType.VarChar, 50);
            SqlCommand1.Parameters.Add(Para1);
            SqlCommand1.Parameters.Add(Para2);
            Para1.Value 
= sTop;
            Para2.Value 
= sORDERBY;
            SqlDataReader result 
= SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);
           
            
return result;
        }
        
        
        
/// <summary>
        
/// 獲取指定商品ID的明細
        
/// </summary>
        
/// <param name="ProductID">要查看的商品ID</param>
        
/// <returns>返回明細</returns>

        public SqlDataReader spProductDetail(int ProductID) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spProductDetail", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Para1 
= new SqlParameter("@ProductID", SqlDbType.Int, 4);
            SqlCommand1.Parameters.Add(Para1);
            Para1.Value 
= ProductID;

            SqlDataReader result 
= SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);
            
return result;
        }


        
/// <summary>
        
/// 獲取商品列表.按指定字段類型
        
/// </summary>
        
/// <param name="sFieldName">字段類型</param>
        
/// <returns></returns>

        public SqlDataReader GetProductsOrderBy(string sFieldName) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("GetProductsOrderBy", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Param1 
= new SqlParameter("@FieldName", SqlDbType.VarChar, 255);
            SqlCommand1.Parameters.Add(Param1);
            Param1.Value 
= sFieldName;

            SqlDataReader result 
= SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);
            
return result;
        }


        
/// <summary>
        
/// 顯示指定購物車ID的記錄
        
/// 
        
///web----dataColumn----SqldataReader
        
/// </summary>
        
/// <param name="sCartID">購物車ID</param>
        
/// <returns></returns>

        public SqlDataReader spShoppingCartList(string sCartID) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spShoppingCartList", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Param1 
= new SqlParameter("@CartID", SqlDbType.VarChar, 50);
            SqlCommand1.Parameters.Add(Param1);
            Param1.Value 
= sCartID;

            SqlDataReader result 
= SqlCommand1.ExecuteReader(CommandBehavior.CloseConnection);
            
return result;
        }


        
/// <summary>
        
/// 獲取指定購物車ID的總金額
        
/// </summary>
        
/// <param name="sCartID">購物車ID</param>
        
/// <returns>總金額</returns>

        public decimal spShoppingCartTotal(string sCartID) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spShoppingCartTotal", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Param1 
= new SqlParameter("@CartID", SqlDbType.VarChar, 50);
            SqlParameter Param2 
= new SqlParameter("@TotalCost", SqlDbType.Money, 8);
            SqlCommand1.Parameters.Add(Param1);
            SqlCommand1.Parameters.Add(Param2);
            Param1.Value 
= sCartID;
            Param2.Direction 
= ParameterDirection.Output;

            SqlCommand1.ExecuteNonQuery();
            
//必須對PARA2進行判斷說明
            if (Param2.Value.ToString() != ""
            
{
                
return (decimal)Param2.Value;
            }

            
else 
            
{
                
return 0;
            }

        }


        
/// <summary>
        
/// 把當前商品加入指定的購物車裏
        
/// </summary>
        
/// <param name="sCartID">購物車ID</param>
        
/// <param name="iProductID">商品ID</param>
        
/// <param name="iQuantity">商品數量</param>

        public void  spShoppingCartAddItem(string sCartID, int iProductID, int iQuantity) 
        
{
            
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spShoppingCartAddItem", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;
          
            SqlParameter Param1 
= new SqlParameter("@ProductID", SqlDbType.Int, 4);
            SqlParameter Param2 
= new SqlParameter("@CartID", SqlDbType.VarChar, 50);
            SqlParameter Param3 
= new SqlParameter("@Quantity", SqlDbType.Int, 4);
      
            SqlCommand1.Parameters.Add(Param1);
            SqlCommand1.Parameters.Add(Param2);
            SqlCommand1.Parameters.Add(Param3);
          
            Param1.Value 
= iProductID;
            Param2.Value 
= sCartID;
            Param3.Value 
= iQuantity;
         

            SqlCommand1.ExecuteNonQuery();
            
        }


        
/// <summary>
        
/// 購物車.更新數量
        
/// </summary>
        
/// <param name="sCartID">指定購物車ID</param>
        
/// <param name="iProductID">指定商品ID</param>
        
/// <param name="iQuantity">要更新的數量</param>

        public void spShoppingCartUpdateQty(string sCartID, int iProductID, int iQuantity) 
        
{
            
if (iQuantity < 0
            
{
                
throw new Exception("系統提示: 數量不能小於 0, 請檢查各項輸入是否一些正確");
            }

            ConnOpen();
            SqlCommand1 
= new SqlCommand("pShoppingCartUpdateQty", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Param1 
= new SqlParameter("@CartID", SqlDbType.VarChar, 50);
            SqlParameter Param2 
= new SqlParameter("@ProductID", SqlDbType.Int, 4);
            SqlParameter Param3 
= new SqlParameter("@Quantity", SqlDbType.Int, 4);
            SqlCommand1.Parameters.Add(Param1);
            SqlCommand1.Parameters.Add(Param2);
            SqlCommand1.Parameters.Add(Param3);
            Param2.Value 
= iProductID;
            Param1.Value 
= sCartID;
            Param3.Value 
= iQuantity;

            SqlCommand1.ExecuteNonQuery();
        }


        
/// <summary>
        
/// 購物車.刪除所選項
        
/// </summary>
        
/// <param name="sCartID">指定購物車ID</param>
        
/// <param name="iProductID">指定商品ID</param>

        public void spShoppingCartRemoveItem(string sCartID, int iProductID) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spShoppingCartRemoveItem", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Param1 
= new SqlParameter("@CartID", SqlDbType.VarChar, 50);
            SqlParameter Param2 
= new SqlParameter("@ProductID", SqlDbType.Int, 4);
            SqlCommand1.Parameters.Add(Param1);
            SqlCommand1.Parameters.Add(Param2);
            Param1.Value 
= sCartID;
            Param2.Value 
= iProductID;

            SqlCommand1.ExecuteNonQuery();
        }


        
/// <summary>
        
/// 將購物車確認爲訂單
        
/// </summary>
        
/// <param name="iCustomerID">指定客戶ID</param>
        
/// <param name="sCartID">指定購物車ID</param>
        
/// <param name="sMemo">加入備註說明</param>
        
/// <returns>返回所生成的訂單ID給客戶</returns>

        public int spOrdersInsert(int iCustomerID, string sCartID, string sMemo) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spOrdersInsert", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;
        

            SqlParameter Param1 
= new SqlParameter("@CartID", SqlDbType.VarChar, 50);
            SqlParameter Param2 
= new SqlParameter("@CustomerID", SqlDbType.Int, 4);
            SqlParameter Param3 
= new SqlParameter("@Memo", SqlDbType.VarChar, 2000);
            SqlParameter Param4 
= new SqlParameter("@OrderID", SqlDbType.Int, 4);

           
            SqlCommand1.Parameters.Add(Param1);
            SqlCommand1.Parameters.Add(Param2);
            SqlCommand1.Parameters.Add(Param3);
            SqlCommand1.Parameters.Add(Param4);
         
            Param1.Value 
= sCartID;
            Param2.Value 
= iCustomerID;
            Param3.Value 
= sMemo;

            
//注意
            Param4.Direction = ParameterDirection.Output;

            SqlCommand1.ExecuteNonQuery();

            
return (int)Param4.Value;
        }


        
/// <summary>
        
/// 作用: 從一個購物車中轉到另一個購物車中
        
/// 情形: 應用於在登錄或者註冊過程完成後, 將臨時購物車轉到該用戶的購物車中.
        
/// </summary>
        
/// <param name="sOldCartId">原來的購物車ID</param>
        
/// <param name="sNewCartId">現在的購物車ID</param>

        public void spShoppingCartMigrate(String sOldCartId, String sNewCartId) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spShoppingCartMigrate", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Param1 
= new SqlParameter("@OldCartId ", SqlDbType.VarChar, 50);
            SqlParameter Param2 
= new SqlParameter("@NewCartId ", SqlDbType.VarChar, 50);
            SqlCommand1.Parameters.Add(Param1);
            SqlCommand1.Parameters.Add(Param2);
            Param1.Value 
= sOldCartId;
            Param2.Value 
= sNewCartId;

            SqlCommand1.ExecuteNonQuery();
        }


        
/// <summary>
        
/// 清空購物車
        
/// </summary>
        
/// <param name="sCartID"></param>

        public void EmptyCart(string sCartID) 
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("ShoppingCartEmpty", SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;

            SqlParameter Param1 
= new SqlParameter("@CartID", SqlDbType.VarChar, 50);
            SqlCommand1.Parameters.Add(Param1);
            Param1.Value 
= sCartID;

            SqlCommand1.ExecuteNonQuery();
        }



       

        
// 4.-----------------------其他實用過程/函數---------------------------
        /// <summary>
        
/// 檢查今天昨天前天及以前的天
        
/// </summary>
        
/// <param name="dt">要檢查的表</param>
        
/// <returns>返回檢查結果</returns>
        
/// <example><%# CheckDate((DateTime)DataBinder.Eval(Container.DataItem,"DateTimes").ToString(yyyyMMdd)) %></example>

        public string CheckDate(DateTime dt)
        
{
            
string sStr;
            DateTime Today;
            Today 
= DateTime.Today;
            
if( dt.Date == Today )
                sStr 
= "今天";
            
else if( dt.AddDays(1).Date == Today )
                sStr 
= "昨天";
            
else if( dt.AddDays(2).Date == Today )
                sStr 
= "前天";
            
else sStr = dt.Year.ToString() + "" + dt.Month.ToString() + "" + dt.Day.ToString() + "";
            sStr 
+= " " + dt.Hour.ToString() + ":" + dt.Minute.ToString();
            
return sStr;
        }


        
/// <summary>
        
/// 截取指定長度的子字符串
        
/// </summary>
        
/// <param name="sStr">需要截取的字符串</param>
        
/// <param name="Len">目標長度</param>
        
/// <returns>返回截取後的字符串</returns>
        
/// <example><%#  GetSubString(DataBinder.Eval(Container.DataItem,"Memo").ToString()) %></example>

        public string GetSubString(string sStr, int Len)
        
{
            
if (sStr.Length > Len)
            
{
                
return sStr.Substring(0, Len) + "...";
            }

            
else
            
{
                
return sStr;
            }

        }

        
//-------------------------------------------操作業務層2------------------------------------------
        
//------------------------------------------------------------------------------------------------
        public void DGDeleteCommand(int ProductId)
        
{
            ConnOpen();
            SqlCommand1 
= new SqlCommand("spDeleteCommand",SqlConnection1);
            SqlCommand1.CommandType 
= CommandType.StoredProcedure;
            SqlParameter para 
= new SqlParameter("@ProductId",SqlDbType.Int);
            para.Value 
= ProductId;
            SqlCommand1.Parameters.Add(para);
            SqlCommand1.ExecuteNonQuery();


        }

        
/// <summary>
        
/// 
        
/// </summary>
        
/// <param name="ModelNumber">規格型號</param>
        
/// <param name="ModelName">productName</param>
      
        
/// <param name="UnitCount">單價</param>

 
        
public void DGUpdateCommand(string ModelNumber,string ModelName,string UnitCost) 
        
{
            ConnOpen();
            SqlDataAdapter1 
= new SqlDataAdapter("spDGUpdateCommand",SqlConnection1);//create database connection

            SqlDataAdapter1.SelectCommand.CommandType 
= CommandType.StoredProcedure;//execute procedure

            SqlParameter modelNumber 
= new SqlParameter("@ModelNumber",SqlDbType.NVarChar,25);
            modelNumber.Value 
= ModelNumber;
            SqlDataAdapter1.SelectCommand.Parameters.Add(modelNumber);
//add prarmeters to command's

            SqlParameter para2 
= new SqlParameter("@ModelName",SqlDbType.NVarChar,25);
            para2.Value 
= ModelName;
            SqlDataAdapter1.SelectCommand.Parameters.Add(para2);

   

            SqlParameter para3 
= new SqlParameter("@UnitCost",SqlDbType.NVarChar,25);
            para3.Value 
= UnitCost;
            SqlDataAdapter1.SelectCommand.Parameters.Add(para3);


            DataSet1 
= new DataSet();
            SqlDataAdapter1.Fill(DataSet1);






           
        }

    }

}

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章