为我的POS帮助我。我正在做快餐交易。我真的对构建交易代码感到困惑。我想这样做
ID!交易编号!产品名称 !
<label class="fullWidth">
<input type="radio" name="selectAddress" class="card-input-element d-none hideOffScreen addressRadio" id="address1" value="address1">
<div class="card card-body bg-light d-flex flex-row justify-content-between align-items-center radioCard">
<div class="addressField">John Doe</div>
<div class="addressField">123 Anytown St.</div>
<div class="addressField">Springfield, MD 22365</div>
<div class="row">
<div class="col-md-12 text-left">
<div class="deliverButton" style="margin-top:12px;">
<div type="button" class="btn btn-primary-custom" style="margin-right:10px;">Deliver to this Address</div>
</div>
<div class="selectedAddressButton" style="margin-top:12px;">
<div style="margin-top:12px;">
<div type="button" class="btn btn-success-custom" style="margin-right:10px;"><i class="fa fa-check" aria-hidden="true" style="padding-right:6px;"></i>Selected Address</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12 text-left =" style="margin-top:15px;">
<button type="button" class="btn btn-secondary-custom" style="margin-right:10px;">Edit</button>
<button type="button" class="btn btn-secondary-custom">Delete</button>
</div>
</div>
</div>
</label>
ID ! TRANSACTIONID ! PRODUCT
1 TR1 DISH1
2 TR1 DISH2
3 TR2 DISH3
4 TR3 DISH4
5 TR3 DISH5
6 TR3 DISH2
答案 0 :(得分:1)
我个人会编写一个存储过程来进行插入,然后使用相同的参数调用该存储过程。
过程看起来像这样
CREATE PROCEDURE dbo.AddTransaction @productname VARCHAR(100)
,@employeename VARCHAR(100)
,@producttotal INTEGER
,@productquantity INTEGER
,@transactionstate VARCHAR(100)
AS
BEGIN
DECLARE @ProductId INT, @EmployeeId INT;
SELECT @ProductId = productID FROM dbo.Product WHERE ProductName = @productname;
SELECT @EmployeeId = SELECT EmployeeID FROM dbo.Employees WHERE name = @EmployeeName;
INSERT INTO dbo.Emp_Transaction(ProductName,EmployeeName,TotalPrice,Transaction_Date,Transaction_Time,ProductQuantity,TransactionState
,ProductId, EmployeeId)
VALUES(@productname,@employeename,@producttotal,GETDATE(),GETDATE(),@productquantity,@transactionstate
,@ProductId, @EmployeeID );
END;
当然,您可能需要稍微更改数据类型。
话虽如此,您的Emp_Transaction表似乎至少存在一个问题,因为它没有被“规范化”。
该表中的ProductId和ProductName均未规范化,因为一个是直接从另一个中派生的。 您可能应该删除ProductName
EmployeeId和EmployeeName相同
另一个细节是,最好始终指定表的架构名称,例如 dbo.Emp_Transaction 而不是 Emp_Transaction 。
答案 1 :(得分:0)
您应该尝试以下方法:尝试首先直接在数据库中运行insert语句,这将帮助您了解查询是否正确,一旦这样做,则应将查询放入代码中,然后调试代码。