示例#1
0
        public void Insert(Order ins)
        {
            DaoConnect    daoConnect = new DaoConnect();
            SqlConnection conn       = daoConnect.SqlConnect();

            string sql = @"INSERT INTO [Sales].[Orders]
                            ([CustomerID],[EmployeeID],[ShipperID],[OrderDate],[ShippedDate],[RequiredDate],[ShipCountry],[ShipCity],[ShipRegion],[ShipPostalCode],[ShipAddress],[Freight])
                           VALUE
                            (@CustomerID,@EmployeeID,@ShipperID,@OrderDate,@ShippedDate,@RequiredDate,@ShipCountry,@ShipCity,@ShipRegion,@ShipPostalCode,@ShipAddress,@Freight)  SELECT SCOPE_IDENTITY()";

            SqlCommand cmd = new SqlCommand(sql, conn);

            cmd.Parameters.Add(new SqlParameter("@CustomerID", ins.CustomerID));
            cmd.Parameters.Add(new SqlParameter("@EmployeeID", ins.EmployeeID));
            cmd.Parameters.Add(new SqlParameter("@ShipperID", ins.ShipperID));
            cmd.Parameters.Add(new SqlParameter("@OrderDate", ins.OrderDate));
            cmd.Parameters.Add(new SqlParameter("@ShippedDate", ins.ShippedDate));
            cmd.Parameters.Add(new SqlParameter("@RequiredDate", ins.RequiredDate));
            cmd.Parameters.Add(new SqlParameter("@ShipName", ""));
            cmd.Parameters.Add(new SqlParameter("@ShipCountry", ins.ShipCountry));
            cmd.Parameters.Add(new SqlParameter("@ShipCity", ins.ShipCity));
            cmd.Parameters.Add(new SqlParameter("@ShipRegion", ins.ShipRegion));
            cmd.Parameters.Add(new SqlParameter("@ShipPostalCode", ins.ShipPostalCode));
            cmd.Parameters.Add(new SqlParameter("@ShipAddress", ins.ShipAddress));
            cmd.Parameters.Add(new SqlParameter("@Freight", ins.Freight));

            conn.Open();
            int orderId = Convert.ToInt32(cmd.ExecuteScalar());

            conn.Close();
        }
示例#2
0
        public List <Orders> getAllData()
        {
            DaoConnect     daoConnect = new DaoConnect();
            SqlConnection  conn       = daoConnect.SqlConnect();
            String         sql        = "SELECT * FROM [Sales].Orders";
            SqlDataAdapter adapter    = new SqlDataAdapter(sql, conn);
            DataSet        dataSet    = new DataSet();

            adapter.Fill(dataSet, "Orders");
            List <Orders> orderList = dataSet.Tables[0].AsEnumerable().Select(
                dataRow => new Orders
            {
                OrderID        = dataRow.Field <int>("OrderID"),
                EmployeeID     = dataRow.Field <int>("EmployeeID"),
                OrderDate      = dataRow.Field <DateTime>("OrderDate"),
                RequiredDate   = dataRow.Field <DateTime>("RequiredDate"),
                ShippedDate    = dataRow.Field <DateTime?>("ShippedDate"),
                ShipperID      = dataRow.Field <int>("ShipperID"),
                Freight        = dataRow.Field <Decimal>("Freight"),
                ShipAddress    = dataRow.Field <String>("ShipAddress"),
                ShipCity       = dataRow.Field <String>("ShipCity"),
                ShipRegion     = dataRow.Field <String>("ShipRegion"),
                ShipPostalCode = dataRow.Field <String>("ShipPostalCode"),
                ShipCountry    = dataRow.Field <String>("ShipCountry"),
            }).ToList();

            return(orderList);
        }
示例#3
0
        public Orders getOrderById(int OrderID)
        {
            List <Orders> orderAllData = this.getAllData();
            Orders        orderData    = orderAllData.Single(m => m.OrderID == OrderID);

            DaoConnect    daoConnect = new DaoConnect();
            SqlConnection conn       = daoConnect.SqlConnect();
            string        sqlDetail  = "select * from Sales.OrderDetails where OrderID = @Id";
            SqlCommand    cmdDetail  = new SqlCommand(sqlDetail, conn);

            cmdDetail.Parameters.Add(new SqlParameter("@Id", OrderID));

            SqlDataAdapter adapterDetail = new SqlDataAdapter(cmdDetail);
            DataSet        dsDetail      = new DataSet();

            adapterDetail.Fill(dsDetail);
            orderData.Details = new List <OrderDetail>();
            foreach (DataRow detailRow in dsDetail.Tables[0].Rows)
            {
                orderData.Details.Add(new OrderDetail
                {
                    OrderID   = int.Parse(detailRow["OrderID"].ToString()),
                    ProductID = int.Parse(detailRow["ProductID"].ToString()),
                    UnitPrice = decimal.Parse(detailRow["UnitPrice"].ToString()),
                    Qty       = int.Parse(detailRow["Qty"].ToString()),
                });
            }

            return(orderData);
        }
示例#4
0
        public Customer getData(int CustomerID)
        {
            DaoConnect      daoConnect = new DaoConnect();
            SqlConnection   conn       = daoConnect.SqlConnect();
            List <Customer> customer   = new List <Customer>();

            customer = this.getAll();
            Customer customerData = customer.Single(m => m.CustomerID == CustomerID);

            return(customerData);
        }
示例#5
0
        public Order getData(int OrderID)
        {
            DaoConnect    daoConnect = new DaoConnect();
            SqlConnection conn       = daoConnect.SqlConnect();
            List <Order>  orderList  = new List <Order>();

            orderList = this.getAll();
            Order orderData = orderList.Single(m => m.OrderID == OrderID);

            return(orderData);
        }
示例#6
0
        public List <Order> getAll()
        {
            DaoConnect    daoConnect = new DaoConnect();
            SqlConnection conn       = daoConnect.SqlConnect();

            //SQL
            string         sql     = "Select * From [Sales].Orders";
            SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
            DataSet        dataSet = new DataSet();

            adapter.Fill(dataSet, "Order");

            List <Order> order = new List <Order>();

            order = dataSet.Tables[0].AsEnumerable().Select(
                dataRow => new Order()
            {
                OrderID = dataRow.Field <int>("OrderID"),                       //訂購編號

                CustomerID = dataRow.Field <int>("CustomerID"),                 //顧客編號

                EmployeeID = dataRow.Field <int>("EmployeeID"),                 //員工編號

                ShipperID = dataRow.Field <int>("ShipperID"),                   //出貨編號

                OrderDate = dataRow.Field <DateTime>("OrderDate"),              //訂購日期

                ShippedDate = dataRow.Field <DateTime?>("ShippedDate"),         //出貨日期

                RequiredDate = dataRow.Field <DateTime>("RequiredDate"),        //需要日期

                ShipCountry = dataRow.Field <String>("ShipCountry").ToString(), //出貨國家

                ShipCity = dataRow.Field <String>("ShipCity"),                  //出貨城市

                ShipRegion = dataRow.Field <String>("ShipRegion"),              //出貨地區

                ShipPostalCode = dataRow.Field <String>("ShipPostalCode"),      //郵遞區號

                ShipAddress = dataRow.Field <String>("ShipAddress"),            //出貨地址

                Freight = dataRow.Field <decimal>("Freight")                    //運費
            }).ToList();

            return(order);
        }
示例#7
0
        public List <Employees> getAllData()
        {
            DaoConnect     daoConnect = new DaoConnect();
            SqlConnection  conn       = daoConnect.SqlConnect();
            String         sql        = "SELECT * FROM [HR].Employees";
            SqlDataAdapter adapter    = new SqlDataAdapter(sql, conn);
            DataSet        dataSet    = new DataSet();

            adapter.Fill(dataSet, "Employees");
            List <Employees> employeesList = dataSet.Tables[0].AsEnumerable().Select(
                dataRow => new Employees
            {
                EmployeeID = dataRow.Field <int>("EmployeeID"),
                LastName   = dataRow.Field <String>("LastName"),
                FirstName  = dataRow.Field <String>("FirstName")
            }).ToList();

            return(employeesList);
        }
示例#8
0
        public List <Shippers> getAllData()
        {
            DaoConnect     daoConnect = new DaoConnect();
            SqlConnection  conn       = daoConnect.SqlConnect();
            String         sql        = "SELECT * FROM [Sales].Shippers";
            SqlDataAdapter adapter    = new SqlDataAdapter(sql, conn);
            DataSet        dataSet    = new DataSet();

            adapter.Fill(dataSet, "Shippers");
            List <Shippers> ShippersList = dataSet.Tables[0].AsEnumerable().Select(
                dataRow => new Shippers
            {
                ShipperID   = dataRow.Field <int>("ShipperID"),
                CompanyName = dataRow.Field <String>("CompanyName"),
                Phone       = dataRow.Field <String>("Phone")
            }).ToList();

            return(ShippersList);
        }
示例#9
0
        public List <Products> getAllData()
        {
            DaoConnect     daoConnect = new DaoConnect();
            SqlConnection  conn       = daoConnect.SqlConnect();
            String         sql        = "SELECT * FROM [Production].[Products]";
            SqlDataAdapter adapter    = new SqlDataAdapter(sql, conn);
            DataSet        dataSet    = new DataSet();

            adapter.Fill(dataSet, "Products");
            List <Products> productsList = dataSet.Tables[0].AsEnumerable().Select(
                dataRow => new Products
            {
                ProductID   = dataRow.Field <int>("ProductID"),
                ProductName = dataRow.Field <String>("ProductName"),
                UnitPrice   = dataRow.Field <decimal>("UnitPrice")
            }).ToList();

            return(productsList);
        }
示例#10
0
        public List <Customers> getAllData()
        {
            DaoConnect     daoConnect = new DaoConnect();
            SqlConnection  conn       = daoConnect.SqlConnect();
            String         sql        = "SELECT * FROM [Sales].Customers";
            SqlDataAdapter adapter    = new SqlDataAdapter(sql, conn);
            DataSet        dataSet    = new DataSet();

            adapter.Fill(dataSet, "Customers");
            List <Customers> customersList = dataSet.Tables[0].AsEnumerable().Select(
                dataRow => new Customers
            {
                CustomerID  = dataRow.Field <int>("CustomerID"),
                CompanyName = dataRow.Field <String>("CompanyName"),
                ContactName = dataRow.Field <String>("ContactName"),
                Address     = dataRow.Field <String>("Address")
            }).ToList();

            return(customersList);
        }
示例#11
0
        public List <Customer> getAll()
        {
            DaoConnect    daoConnect = new DaoConnect();
            SqlConnection conn       = daoConnect.SqlConnect();

            //SQL
            string         sql     = "Select * From [Sales].Customer";
            SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
            DataSet        dataSet = new DataSet();

            adapter.Fill(dataSet, "Customer");

            List <Customer> customer = new List <Customer>();

            customer = dataSet.Tables[0].AsEnumerable().Select(
                dataRow => new Customer()
            {
            }).ToList();

            return(customer);
        }
示例#12
0
        public int DeleteOrder(int orderId)
        {
            DaoConnect    daoConnect = new DaoConnect();
            SqlConnection conn       = daoConnect.SqlConnect();

            string     sql = @"
                    DELETE FROM  [Sales].[OrderDetails]
                    WHERE OrderID = @OrderID
                    DELETE FROM  [Sales].[Orders]
                    WHERE OrderID = @OrderID
                ";
            SqlCommand cmd = new SqlCommand(sql, conn);

            cmd.Parameters.Add(new SqlParameter("@OrderID", orderId));

            conn.Open();
            // 開啟交易控管
            SqlTransaction transaction = conn.BeginTransaction();

            cmd.Transaction = transaction;
            try
            {
                cmd.ExecuteNonQuery();
                // 全部動作做完後執行Commit
                transaction.Commit();
            }
            catch (Exception)
            {
                // 有出問題則將此交易內的所有更動的資料Rollback
                transaction.Rollback();
                throw;
            }
            finally
            {
                conn.Close();
            }
            return(orderId);
        }
示例#13
0
        public int InsertOrderReturnNewOrderId(Orders newOrder)
        {
            DaoConnect    daoConnect = new DaoConnect();
            SqlConnection conn       = daoConnect.SqlConnect();
            string        sql        = @"
                INSERT INTO [Sales].[Orders]
                            ([CustomerID]
                            ,[EmployeeID]
                            ,[OrderDate]
                            ,[RequiredDate]
                            ,[ShippedDate]
                            ,[ShipperID]
                            ,[Freight]
                            ,[ShipName]
                            ,[ShipAddress]
                            ,[ShipCity]
                            ,[ShipRegion]
                            ,[ShipPostalCode]
                            ,[ShipCountry])
                        VALUES
                            (@CustomerID
                            ,@EmployeeID
                            ,@OrderDate
                            ,@RequiredDate
                            ,@ShippedDate
                            ,@ShipperID
                            ,@Freight
                            ,@ShipName
                            ,@ShipAddress
                            ,@ShipCity
                            ,@ShipRegion
                            ,@ShipPostalCode
                            ,@ShipCountry)
                    SELECT SCOPE_IDENTITY()
                ";
            SqlCommand    cmd        = new SqlCommand(sql, conn);

            cmd.Parameters.Add(new SqlParameter("@CustomerID", newOrder.CustomerID));
            cmd.Parameters.Add(new SqlParameter("@EmployeeID", newOrder.EmployeeID));
            cmd.Parameters.Add(new SqlParameter("@OrderDate", newOrder.OrderDate));
            cmd.Parameters.Add(new SqlParameter("@RequiredDate", newOrder.RequiredDate));
            cmd.Parameters.Add(new SqlParameter("@ShippedDate", newOrder.ShippedDate.HasValue ? newOrder.ShippedDate.Value.ToString("yyyy/MM/dd") : ""));
            cmd.Parameters.Add(new SqlParameter("@ShipperID", newOrder.ShipperID));
            cmd.Parameters.Add(new SqlParameter("@Freight", newOrder.Freight));
            cmd.Parameters.Add(new SqlParameter("@ShipName", ""));
            cmd.Parameters.Add(new SqlParameter("@ShipAddress", newOrder.ShipAddress));
            cmd.Parameters.Add(new SqlParameter("@ShipCity", newOrder.ShipCity));
            cmd.Parameters.Add(new SqlParameter("@ShipRegion", string.IsNullOrWhiteSpace(newOrder.ShipRegion) ? " " : newOrder.ShipRegion));
            cmd.Parameters.Add(new SqlParameter("@ShipPostalCode", string.IsNullOrWhiteSpace(newOrder.ShipPostalCode) ? " " : newOrder.ShipPostalCode));
            cmd.Parameters.Add(new SqlParameter("@ShipCountry", newOrder.ShipCountry));

            int orderId;

            conn.Open();
            // 開啟交易控管
            SqlTransaction transaction = conn.BeginTransaction();

            cmd.Transaction = transaction;
            try
            {
                orderId = Convert.ToInt32(cmd.ExecuteScalar());
                string sqlDetail = @"
                    INSERT INTO Sales.OrderDetails
                               ([OrderID]
                               ,[ProductID]
                               ,[UnitPrice]
                               ,[Qty]
                               ,[Discount])
                         VALUES
                               (@OrderID
                               ,@ProductID
                               ,@UnitPrice
                               ,@Qty
                               , 0)
                    ";
                foreach (var detail in newOrder.Details)
                {
                    SqlCommand cmdDetail = new SqlCommand(sqlDetail, conn);
                    cmdDetail.Transaction = transaction;
                    cmdDetail.Parameters.Add(new SqlParameter("@OrderID", orderId));
                    cmdDetail.Parameters.Add(new SqlParameter("@ProductID", detail.ProductID));
                    cmdDetail.Parameters.Add(new SqlParameter("@UnitPrice", detail.UnitPrice));
                    cmdDetail.Parameters.Add(new SqlParameter("@Qty", detail.Qty));
                    cmdDetail.ExecuteNonQuery();
                }
                transaction.Commit();
            }
            catch
            {
                transaction.Rollback();
                throw;
            }
            finally
            {
                conn.Close();
            }
            return(orderId);
        }
示例#14
0
        public int UpdateOrder(Orders oldOrder)
        {
            DaoConnect    daoConnect = new DaoConnect();
            SqlConnection conn       = daoConnect.SqlConnect();
            string        sql        = @"
                    UPDATE [Sales].[Orders]
                    SET 
                        [CustomerID] = @CustomerID
                        ,[EmployeeID] = @EmployeeID
                        ,[OrderDate] = @OrderDate
                        ,[RequiredDate] = @RequiredDate
                        ,[ShippedDate] = @ShippedDate
                        ,[ShipperID] = @ShipperID
                        ,[Freight] = @Freight
                        ,[ShipName] = @ShipName
                        ,[ShipAddress] = @ShipAddress
                        ,[ShipCity] = @ShipCity
                        ,[ShipRegion] = @ShipRegion
                        ,[ShipPostalCode] = @ShipPostalCode
                        ,[ShipCountry] = @ShipCountry
                    WHERE [OrderID] = @OrderID

                    DELETE FROM Sales.OrderDetails WHERE OrderID = @OrderID
            ";
            SqlCommand    cmd        = new SqlCommand(sql, conn);

            cmd.Parameters.Add(new SqlParameter("@OrderID", oldOrder.OrderID));
            cmd.Parameters.Add(new SqlParameter("@CustomerID", oldOrder.CustomerID));
            cmd.Parameters.Add(new SqlParameter("@EmployeeID", oldOrder.EmployeeID));
            cmd.Parameters.Add(new SqlParameter("@OrderDate", oldOrder.OrderDate));
            cmd.Parameters.Add(new SqlParameter("@RequiredDate", oldOrder.RequiredDate));
            cmd.Parameters.Add(new SqlParameter("@ShippedDate", oldOrder.ShippedDate.HasValue ? oldOrder.ShippedDate.Value.ToString("yyyy/MM/dd") : ""));
            cmd.Parameters.Add(new SqlParameter("@ShipperID", oldOrder.ShipperID));
            cmd.Parameters.Add(new SqlParameter("@Freight", oldOrder.Freight));
            cmd.Parameters.Add(new SqlParameter("@ShipName", ""));
            cmd.Parameters.Add(new SqlParameter("@ShipAddress", oldOrder.ShipAddress));
            cmd.Parameters.Add(new SqlParameter("@ShipCity", oldOrder.ShipCity));
            cmd.Parameters.Add(new SqlParameter("@ShipRegion", string.IsNullOrWhiteSpace(oldOrder.ShipRegion) ? oldOrder.ShipRegion : " "));
            cmd.Parameters.Add(new SqlParameter("@ShipPostalCode", string.IsNullOrWhiteSpace(oldOrder.ShipPostalCode) ? oldOrder.ShipPostalCode : " "));
            cmd.Parameters.Add(new SqlParameter("@ShipCountry", oldOrder.ShipCountry));

            conn.Open();
            cmd.ExecuteNonQuery();
            int orderId;
            // 開啟交易控管
            SqlTransaction transaction = conn.BeginTransaction();

            cmd.Transaction = transaction;
            try
            {
                orderId = Convert.ToInt32(oldOrder.OrderID);
                if (oldOrder.Details != null)
                {
                    string sqlDetail = @"
                    INSERT INTO Sales.OrderDetails
                               ([OrderID]
                               ,[ProductID]
                               ,[UnitPrice]
                               ,[Qty]
                               ,[Discount])
                         VALUES
                               (@OrderID
                               ,@ProductID
                               ,@UnitPrice
                               ,@Qty
                               , 0)
                    ";
                    foreach (var detail in oldOrder.Details)
                    {
                        SqlCommand cmdDetail = new SqlCommand(sqlDetail, conn);
                        cmdDetail.Transaction = transaction;
                        cmdDetail.Parameters.Add(new SqlParameter("@OrderID", orderId));
                        cmdDetail.Parameters.Add(new SqlParameter("@ProductID", detail.ProductID));
                        cmdDetail.Parameters.Add(new SqlParameter("@UnitPrice", detail.UnitPrice));
                        cmdDetail.Parameters.Add(new SqlParameter("@Qty", detail.Qty));
                        cmdDetail.ExecuteNonQuery();
                    }
                    transaction.Commit();
                }
            }
            catch
            {
                transaction.Rollback();
                throw;
            }
            finally
            {
                conn.Close();
            }
            return(orderId);
        }