我有一个asp.net电子商务应用程序,我在其中添加了Discount的功能:
如果totalPurchase amount >=200, then 5% disc
,
如果is >=500, then 7%..
喜欢那样。
问题是应该通过管理员登录动态更改折扣%。即我不允许在代码隐藏中编写此代码。
if(totalPurchase>=200 && totalPurchase<700)
{ // code for 5% discount }
我正在尝试实现recorderdet来遍历数据库表Discount,其字段为..
DiscID -1
DiscPer -5
DiscAmount -200
依旧......
答案 0 :(得分:1)
我觉得您缺少一个数据库列,用于存储您的折扣金额范围,例如200
到700
等。我假设数据库表名称为Discounts
,范围列是AmountFrom
和AmountTo
。这是我的解决方案:
OleDbConnection connect = new OleDbConnection();
connect.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Data.accdb;Persist Security Info=False;";
connect.Open();
OleDbCommand command = new OleDbCommand();
command.CommandText = "SELECT AmountFrom, AmountTo, DiscPer FROM Discounts";
command.Connection = connect;
OleDbReader reader = command.ExecuteReader();
while(reader.Read())
{
int from = int.Parse(reader['AmountFrom'].toString());
int to = int.Parse(reader['AmountTo'].toString());
int discount = int.Parse(reader['DiscPer'].toString());
if(totalPurchase >= from && totalPurchase < to) {
MessageBox.Show("You got a discount of " + discount + "%");
}
}
connect.Close();
答案 1 :(得分:0)
这个问题可以帮助您更好地解决折扣问题Database Design Brainstorming: Sale Prices