2

私は割引の機能を追加しているasp.net eコマースアプリケーションを持っています:

もし、totalPurchase amount >=200, then 5% discそうなら、そのis >=500, then 7%..ように。

問題は、管理者ログインを介して割引率を動的に変更する必要があることです。つまり、コード ビハインドでこのコードを記述することは許可されていません。

if(totalPurchase>=200 && totalPurchase<700)
{ // code for 5% discount }

フィールドが..

DiscID -1

DiscPer -5

DiscAmount -200 

等々..

4

2 に答える 2

1

割引額の範囲などを格納するためのデータベース列が不足しているよう200です。データベーステーブル名をと、範囲列を700とと仮定しています。これがあなたのための私の解決策です:DiscountsAmountFromAmountTo

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();
于 2012-08-09T10:37:40.423 に答える
0

この SO の質問は、割引の問題に対する適切なアプローチを提供する可能性があります。データベース設計のブレインストーミング: 販売価格

于 2012-08-09T10:25:46.740 に答える