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 { /// /// Login.xaml 的交互逻辑 /// public partial class Login : Window { string logpath = System.Environment.CurrentDirectory + "\\Log";//日志文件目录 string logPath = "" + System.Environment.CurrentDirectory + "\\Log\\Log.txt";//日志文件 string Log_time = "[" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "]:"; public string INIPath = Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "formula.ini"; //配置文件路径 DataTable logindataTable = new DataTable(); //建立login缓存 public Login() { WindowStartupLocation = WindowStartupLocation.CenterScreen; InitializeComponent(); System.IO.DirectoryInfo log = new System.IO.DirectoryInfo(@logpath);//生成日志文件目录 if (!File.Exists(logPath))//检查日志文件并写入启动日志 { FileStream fs = new FileStream(logPath, FileMode.CreateNew, FileAccess.Write);//创建写入文件 StreamWriter wr = new StreamWriter(fs);//创建文件 wr.WriteLine(Log_time + "FORMULA_start"); wr.Close(); } else { FileStream fs = new FileStream(logPath, FileMode.Append, FileAccess.Write); StreamWriter wr = new StreamWriter(fs);//创建文件 wr.WriteLine(Log_time + "FORMULA_start"); wr.Close(); } } private void Button_Click(object sender, RoutedEventArgs e) //退出按钮事件 { this.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(); 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(); 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; } 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是否生效 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; //连接失败红色 System.Windows.MessageBox.Show("连接数据库失败"); Windows.Sql sql = new Windows.Sql(); sql.ShowDialog();//实例化并置顶打开数据库设置窗口 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();//实例化并置顶打开数据库设置窗口 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("请求信息失败,检查连接"); return; } } } } }