|
|
|
|
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
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|