Я делаю проект, и я думал, что у меня все работает.я пытаюсь сделать это, где, если у пользователя есть vip (или если vip равен 1), он откроет новую форму.проблема в том, что когда у одного человека есть vip, то у всех есть (или если vip равен 1 для одного человека)
Я много чего пробовал.и пока ничего не получалось.
Вот код кнопки:
private void MaterialFlatButton4_Click(object sender, EventArgs e)
{
List<User> users = User.GetUsers();
bool NotVip = true;
foreach (User u in users)
{
ListViewItem item = new ListViewItem(new string[] { u.Id.ToString(), u.Username, u.Password, u.VIP.ToString() });
item.Tag = u;
if (u.VIP == 1)
{
NotVip = false;
MessageBox.Show("Nothing in here works yet", "<3", MessageBoxButtons.OK);
this.Hide();
Form3 f3 = new Form3();
f3.ShowDialog();
}
}
if (NotVip == true)
{
//Failed to login.
MessageBox.Show("You do not have vip.\n\nPlease purchase and then try again", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
Вот код User.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace ch
{
class User
{
//database stuff
private const String SERVER = "localhost";
private const String DATABASE = "project";
private const String UID = "root";
private const String PASSWORD = "********";
private static MySqlConnection dbConn;
// User class stuff
public int Id { get; private set; }
public String Username { get; private set; }
public String Password { get; private set; }
public int VIP { get; private set; }
private User(int id, String u, String p, int v)
{
Id = id;
Username = u;
Password = p;
VIP = v;
}
public static void InitializeDB()
{
MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder();
builder.Server = SERVER;
builder.UserID = UID;
builder.Password = PASSWORD;
builder.Database = DATABASE;
string connString = builder.ToString();
builder = null;
Console.WriteLine(connString);
dbConn = new MySqlConnection(connString);
Application.ApplicationExit += (sender, args) => {
if (dbConn != null)
{
dbConn.Dispose();
dbConn = null;
}
};
}
public static List<User> GetUsers()
{
List<User> users = new List<User>();
String query = "SELECT * FROM accounts";
MySqlCommand cmd = new MySqlCommand(query, dbConn);
dbConn.Open();
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
int id = (int)reader["id"];
String username = reader["username"].ToString();
String password = reader["password"].ToString();
int v = (int)reader["vip"];
User u = new User(id, username, password, v);
users.Add(u);
}
reader.Close();
dbConn.Close();
return users;
}
}
}
Я ожидал, что новая формаоткрывать ТОЛЬКО ЕСЛИ вошедший в систему пользователь имеет vip (и не открывать его для всех, если у одного пользователя есть vip)