Files
formula_manage/Login.xaml.cs
T
2024-06-27 23:09:28 +08:00

251 lines
9.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Forms;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Runtime.InteropServices;
using System.Data.SqlClient;
using System.Data;
using System.Security.Policy;
using System.IO;
using formula_manage.Windows;
namespace formula_manage
{
/// <summary>
/// Login.xaml 的交互逻辑
/// </summary>
public partial class Login : Window
{
public string INIPath = Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "formula.ini"; //配置文件路径
DataTable logindataTable = new DataTable(); //建立login缓存
public Login()
{
WindowStartupLocation = WindowStartupLocation.CenterScreen;
InitializeComponent();
UserClass.LogGing.LogGingDATA("FORMULA_start");
}
private void Button_Click(object sender, RoutedEventArgs e) //退出按钮事件
{
UserClass.LogGing.LogGingDATA("FORMULA_LogStop");
Window window = Window.GetWindow(this);
window.Close();
}
private void Button_Click_1(object sender, RoutedEventArgs e) //登录按钮事件
{
string user = User.Text;
string pasword = Pasword.Password; ;
if (User.Text == "") //检查用户名输入
{
System.Windows.MessageBox.Show("请输入用户名");
return;
}
if ((user == "engineer" || user == "ENGINEER") && (pasword == "engineer" || pasword == "ENGINEER")) //确认账号是否是工程师
{
App.USER_Purview = "ENGINEER";//传入用户名
Window window = Window.GetWindow(this);
MainWindow Main = new MainWindow();
window.Close();
UserClass.LogGing.LogGingDATA("LOGon = ENGINEER");
Main.ShowDialog();//实例化并置顶打开窗口
}
else
{
string var_sql;
if (pasword =="") var_sql = "[UserCode]='" + user + "' and [PassWord] is null"; //查询字符
else var_sql = "[UserCode]='" + user + "' and [PassWord]='" + pasword + "'";
var loginOK = this.logindataTable.Select(var_sql).FirstOrDefault(); //查询账号信息是否正确,不正确返回null
if (loginOK != null)
{
App.USER_Purview = User.Text;//传入用户名
Window window = Window.GetWindow(this);
MainWindow Main = new MainWindow();
window.Close();
UserClass.LogGing.LogGingDATA("LOGon = " + user);
Main.ShowDialog();//实例化并置顶打开窗口
}
else
System.Windows.MessageBox.Show("账号或密码错误");
}
}
private void SearchBox_OnKeyDownd(object sender, System.Windows.Input.KeyEventArgs e) //回车跳转功能
{
if (e.Key == Key.Enter)
{
//SendKeys.SendWait("{Tab}");
UserClass.PressKey.PressKeys(Keys.Tab, false);
UserClass.PressKey.PressKeys(Keys.Tab, true);
}
}
string TEXT_SQLIP;
string TEXT_SQLNAME;
string TEXT_SQMOD;
string TEXT_SQLUSER;
string TEXT_SQLPASWOR;
string Connstr_SC;
string Connstr_DBC;
bool SQL2;
private async void Window_Loaded(object sender, RoutedEventArgs e)
{
logon.IsEnabled = false; //关闭登录按钮
UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(INIPath);
if (!Boolean.Parse(Configini.IniReadvalue("SOFTWARE_SET", "L1")))//连接状态显示是否生效 1有效
{
DISPENLINK.Visibility = Visibility.Hidden; //不显示
DBCLINK.Visibility = Visibility.Hidden;
EXLINK.Visibility = Visibility.Hidden;
USERLINK.Visibility = Visibility.Hidden;
DISPENLINK.Background = Brushes.Red;
}
if (Boolean.Parse(Configini.IniReadvalue("SOFTWARE_SET", "L6")))
{
try
{
EXLINK.Background = Brushes.Green;
}catch(Exception)
{
EXLINK.Background = Brushes.Red;
System.Windows.MessageBox.Show("扩展程序未启动");
UserClass.LogGing.LogGingDATA("[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "]:" + "EX = FALL_TO_START");
}
}
try
{
TEXT_SQLIP = Configini.IniReadvalue("SQL_SERVER", "SQL1"); //读配置文件
TEXT_SQLNAME = Configini.IniReadvalue("SQL_SERVER", "SQL2");
TEXT_SQMOD = Configini.IniReadvalue("SQL_SERVER", "SQL3");
TEXT_SQLUSER = Configini.IniReadvalue("SQL_SERVER", "SQL4");
TEXT_SQLPASWOR = Configini.IniReadvalue("SQL_SERVER", "SQL5");
SQL2 = Boolean.Parse(Configini.IniReadvalue("SQL_SERVER", "SQL6")); //数据库对象2是否生效
}catch(Exception)
{
System.Windows.MessageBox.Show("配置信息丢失");
}
if (TEXT_SQMOD == "0") //判断连接方式
{
Connstr_SC = "server=" + TEXT_SQLIP + ";database=" + TEXT_SQLNAME + ";Trusted_Connection=SSPI";
}
else
{
Connstr_SC = "server=" + TEXT_SQLIP + ";database=" + TEXT_SQLNAME + ";User ID=" + TEXT_SQLUSER + ";Password=" + TEXT_SQLPASWOR;
}
SqlConnection conn_SC = new SqlConnection(Connstr_SC);
try
{
await conn_SC.OpenAsync();
}catch (Exception)
{
DISPENLINK.Background = Brushes.Red; //连接失败红色
DBCLINK.Background = Brushes.Red;
System.Windows.MessageBox.Show("连接数据库失败");
//Windows.Sql sql = new Windows.Sql();
//sql.ShowDialog();//实例化并置顶打开数据库设置窗口
UserClass.LogGing.LogGingDATA("[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "]:" + "DISPENLINK = ConnectFailed");
return;
}
conn_SC.Close(); //关闭连接
DISPENLINK.Background = Brushes.Green; //连接成功绿色
if (SQL2) //数据库对象2生效则检查
{
TEXT_SQLIP = Configini.IniReadvalue("SQL_SERVER", "SQL7"); //读配置文件
TEXT_SQLNAME = Configini.IniReadvalue("SQL_SERVER", "SQL8");
TEXT_SQMOD = Configini.IniReadvalue("SQL_SERVER", "SQL9");
TEXT_SQLUSER = Configini.IniReadvalue("SQL_SERVER", "SQL10");
TEXT_SQLPASWOR = Configini.IniReadvalue("SQL_SERVER", "SQL11");
if (TEXT_SQMOD == "0") //判断连接方式
{
Connstr_DBC = "server=" + TEXT_SQLIP + ";database=" + TEXT_SQLNAME + ";Trusted_Connection=SSPI";
}
else
{
Connstr_DBC = "server=" + TEXT_SQLIP + ";database=" + TEXT_SQLNAME + ";User ID=" + TEXT_SQLUSER + ";Password=" + TEXT_SQLPASWOR;
}
SqlConnection conn_DBC = new SqlConnection(Connstr_DBC);
try
{
await conn_DBC.OpenAsync();
}catch (Exception)
{
DBCLINK.Background = Brushes.Red; //连接失败红色
System.Windows.MessageBox.Show("连接数据库失败");
//Windows.Sql sql = new Windows.Sql();
//sql.ShowDialog();//实例化并置顶打开数据库设置窗口
UserClass.LogGing.LogGingDATA("[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "]:" + "DBCLINK = ConnectFailed");
return;
}
DBCLINK.Background = Brushes.Green; //连接成功绿色
}
logon.IsEnabled = true; //允许登录按钮
UserClass.PressKey.PressKeys(Keys.Tab, false);
UserClass.PressKey.PressKeys(Keys.Tab, true);
if (DISPENLINK.Background == Brushes.Green)
{
string user_sql = "SELECT UserCode ,PassWord ,UserSetup ,Capacity ,GROUP_CODE ,Note FROM [Dispensing].[dbo].[UserAccount] WHERE Capacity != 0";//查询语句
try
{
await conn_SC.OpenAsync(); //打开数据连接
SqlDataAdapter user_data = new SqlDataAdapter(user_sql, Connstr_SC); //查询
user_data.Fill(logindataTable); //查询结果存入缓存
conn_SC.Close(); //关闭连接
User.ItemsSource = logindataTable.DefaultView; //数据加入表格
}
catch (Exception)
{
System.Windows.MessageBox.Show("请求信息失败,检查连接");
UserClass.LogGing.LogGingDATA("[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "]:" + "USER = NoData");
return;
}
}
}
}
}