Member 12950401 Ответов: 1

Как использовать оператор if в C# для проверки уровня членства


я разрабатываю проект. я должен дать скидку пользователю в зависимости от уровня членства, который пользователь выбирает во время регистрации. если пользователь выбирает серебро, то скидка 10%, если бронзу, то 20%, а если золото, то скидка 30%. я использую приведенный ниже код, но не могу понять, как использовать оператор if. textbox4 показывает значение из базы данных. если значение в textbox4-серебро, то скидка 10%, или если значение в textbox4-бронза, то 20%, или если значение в textbox4-золото, то 30%. пожалуйста помочь.

Что я уже пробовал:

decimal disc1=10;
decimal disc2 = 20;
decimal disc3=30;
string s, t;

string[] a = new string[5];
SqlConnection con = new SqlConnection();
con.ConnectionString = "Data Source=.\\sqlexpress;Initial Catalog=college_education;User ID=sa;Password=system;";
con.Open();

SqlCommand com = new SqlCommand("Select C.User_name,sum(C.qty*P.product_price) TAmount,CR.ADDRESS,CR.membership_level ML  from cart C,Customer_registration CR, prod P where C.product_id = P.id and C.user_name='" + Session["user"] + "' and status='ATC' and C.user_name=CR.user_name group by C.user_Name,CR.membership_level,CR.ADDRESS", con);

SqlDataReader sdr=com.ExecuteReader();
sdr.Read();

TextBox5.Text=sdr["TAmount"].ToString();
TextBox2.Text = sdr["User_name"].ToString();
TextBox4.Text = sdr["ML"].ToString();
TextBox3.Text = sdr["ADDRESS"].ToString();

if(TextBox4.Text=="silver")
{

}

else if (TextBox4.Text=="bronze")
{

}
else if (TextBox4.Text=="gold")
{


}

Michael_Davies

Не используйте текстовое поле для фиксированных выбираемых значений, пользователь может ввести то, что ему нравится, например, если он наберет "золото", скидки не будет, используйте ComboBox.

sreeyush sudhakaran

Пожалуйста, улучшите свой вопрос, где вы застряли?

Member 12950401

сэр...я не могу написать часть if моего кода.

если(textbox4.текст=серебро)
{
код....
}

sreeyush sudhakaran

Вам нужна бизнес-логика?

sreeyush sudhakaran

TextBox4.Включен = ложь;
Десятичная Скидка = 0;
Десятичные TotalAmount ;
Десятичный.TryParse(TextBox5. Text, out TotalAmount);

если(TextBox4.Текст.Отделка().ToLower ()== " серебро")
{
DiscountAmount = TotalAmount - (TotalAmount * 0.1);
}

остальное, если (TextBox4.Текст.Отделка().ToLower ()== " бронза")
{
DiscountAmount = TotalAmount - (TotalAmount * 0.2);
}
остальное, если (TextBox4.Текст.Отделка().ToLower ()== " золото")
{
DiscountAmount = TotalAmount - (TotalAmount * 0.3);
}

HardikPatel.SE

Используйте переключатель case вместо if ... else.

1 Ответов

Рейтинг:
1

OriginalGriff

Сделать это:

double discount = 1.0;
string membership = textBox4.Text.Trim.ToLower();
switch (membership)
   {
   case "bronze": discount = 0.10; break;
   case "silver": discount = 0.20; break;
   case "gold": discount = 0.30; break;
   }

Затем умножьте первоначальную цену на (1,0-скидка), чтобы получить новое значение.


HardikPatel.SE

Случае переключение происходит быстрее, чем если состоянии.

OriginalGriff

Иногда-это зависит от данных и диапазона значений.
Однако в данном случае это гораздо более читабельно! :смеяться: