using System.Data; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using MahApps.Metro.Controls; using Npgsql; using Npgsql.Replication; namespace PrototypWPFHAG; /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : MetroWindow { public MainWindow() { InitializeComponent(); // TestConnection(); // Console.ReadKey(); } private void loginButton_Click(object sender, RoutedEventArgs e) { // 从用户输入中获取用户名和密码 string username = UsernameTextBox.Text; // 获取用户名 string password = PasswordTextBox.Password; // 获取密码 // 调用 ValidateUser 方法验证用户凭据 if (ValidateUser(username, password)) { MessageBox.Show("ok", "Login Successful", MessageBoxButton.OK, MessageBoxImage.Error); } else { // 如果验证失败,显示错误信息 MessageBox.Show("Invalid username or password.", "Login Failed", MessageBoxButton.OK, MessageBoxImage.Error); } } private bool ValidateUser(string username, string password) { // 获取数据库连接 using (var con = GetConnection()) { con.Open(); // 打开数据库连接 string query = "SELECT COUNT(*) FROM USER WHERE UserName = @username AND Password = @password;"; using (var cmd = new NpgsqlCommand(query, con)) { // 使用参数化查询防止 SQL 注入 cmd.Parameters.AddWithValue("@username", username); cmd.Parameters.AddWithValue("@password", password); // 执行查询并获取结果 int count = (int)cmd.ExecuteScalar(); return count > 0; // 如果匹配记录数量大于 0,返回 true } } } private static void TestConnection() { using (NpgsqlConnection con = GetConnection()) { con.Open(); if (con.State == ConnectionState.Open) { Console.WriteLine("Connected to Server"); } } } private static NpgsqlConnection GetConnection() { return new NpgsqlConnection(@"Server=localhost;Port=5432;User Id=postgres;Password=postgres;Database=postgres;"); } //class Program //{ // static void Main(string[] args) // { // TestConnection(); // Console.ReadKey(); // } // private static void TestConnection() // { // using(NpgsqlConnection con = GetConnection()){ // con.Open(); // if (con.State == ConnectionState.Open) { // Console.WriteLine("Connected to Server"); // } // } // } // private static NpgsqlConnection GetConnection() // { // return new NpgsqlConnection(@"Server=localhost;Port=5432;User Id=postgres;Password=postgres;Database=TestServer;"); // } //} }