diff --git a/Login.xaml.cs b/Login.xaml.cs index e76dcc1..a5fa800 100644 --- a/Login.xaml.cs +++ b/Login.xaml.cs @@ -15,6 +15,8 @@ using System.Windows.Media.Imaging; using System.Windows.Shapes; using System.Runtime.InteropServices; using System.Data.SqlClient; +using System.Data; +using System.Security.Policy; namespace formula_manage { @@ -67,7 +69,7 @@ namespace formula_manage string TEXT_SQLUSER; string TEXT_SQLPASWOR; string Connstr_SC; - private void Window_Loaded(object sender, RoutedEventArgs e) + private async void Window_Loaded(object sender, RoutedEventArgs e) { logon.IsEnabled = false; //关闭登录按钮 @@ -86,10 +88,21 @@ namespace formula_manage Connstr_SC = "server=" + TEXT_SQLIP + ";database=" + TEXT_SQLNAME + ";User ID=" + TEXT_SQLUSER + ";Password=" + TEXT_SQLPASWOR; } SqlConnection conn_SC = new SqlConnection(Connstr_SC); - conn_SC.Open(); - // conn_SC.OpenAsync(); - conn_SC.Close(); + // conn_SC.Open(); + try + { + await conn_SC.OpenAsync(); + }catch (Exception) + { + System.Windows.MessageBox.Show("连接数据库失败"); + + Windows.Sql sql = new Windows.Sql(); + sql.ShowDialog();//实例化并置顶打开数据库设置窗口 + return; + } + + conn_SC.Close(); //关闭连接 logon.IsEnabled = true; //允许登录按钮 UserClass.PressKey.PressKeys(Keys.Tab, false); diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index ce453e6..69e4a04 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -29,7 +29,7 @@ namespace formula_manage private void SQL(object sender, RoutedEventArgs e) { Windows.Sql sql= new Windows.Sql(); - sql.ShowDialog();//实例化并置顶打开信息窗口 + sql.ShowDialog();//实例化并置顶打开数据库设置窗口 } private void HELP(object sender, RoutedEventArgs e) { diff --git a/Windows/Sql.xaml b/Windows/Sql.xaml index c806df2..2e610e0 100644 --- a/Windows/Sql.xaml +++ b/Windows/Sql.xaml @@ -36,6 +36,12 @@ + + + + + + diff --git a/Windows/Sql.xaml.cs b/Windows/Sql.xaml.cs index 873022b..154030b 100644 --- a/Windows/Sql.xaml.cs +++ b/Windows/Sql.xaml.cs @@ -99,41 +99,80 @@ namespace formula_manage.Windows this.Close(); //退出窗口 } - private void Button_Click_1(object sender, RoutedEventArgs e) + private async void Button_Click_1(object sender, RoutedEventArgs e) { string Connstr_SC; string Connstr_DBC; - - if (TEXT_SQMOD.Text == "Windows 身份认证") //连接数据库测试 + Wait_sql.Visibility = Visibility.Visible;//显示遮罩 + try { - Connstr_SC = "server=" + TEXT_SQLIP.Text + ";database=" + TEXT_SQLNAME.Text + ";Trusted_Connection=SSPI"; + if (TEXT_SQMOD.Text == "Windows 身份认证") //连接数据库测试 + { + Connstr_SC = "server=" + TEXT_SQLIP.Text + ";database=" + TEXT_SQLNAME.Text + ";Trusted_Connection=SSPI"; + + } + else + { + Connstr_SC = "server=" + TEXT_SQLIP.Text + ";database=" + TEXT_SQLNAME.Text + ";User ID=" + TEXT_SQLUSER.Text + ";Password=" + TEXT_SQLPASWORD.Text; + } + SqlConnection conn_SC = new SqlConnection(Connstr_SC); + await conn_SC.OpenAsync(); //连接数据库 + conn_SC.Close(); + if (TEXT_SQLINK.IsChecked.GetValueOrDefault()) //连接数据库2测试 + { + if (TEXT_SQMOD2.Text == "Windows 身份认证") + { + Connstr_DBC = "server=" + TEXT_SQLIP2.Text + ";database=" + TEXT_SQLNAME2.Text + ";Trusted_Connection=SSPI"; + + } + else + { + Connstr_DBC = "server=" + TEXT_SQLIP2.Text + ";database=" + TEXT_SQLNAME2.Text + ";User ID=" + TEXT_SQLUSER2.Text + ";Password=" + TEXT_SQLPASWORD2.Text; + } + SqlConnection conn_DBC = new SqlConnection(Connstr_DBC); + await conn_DBC.OpenAsync(); //连接数据库 + conn_DBC.Close(); + } } - else + catch (Exception) { - Connstr_SC = "server=" + TEXT_SQLIP.Text + ";database=" + TEXT_SQLNAME.Text + ";User ID=" + TEXT_SQLUSER.Text + ";Password=" + TEXT_SQLPASWORD.Text; + Wait_sql.Visibility = Visibility.Hidden; //关闭遮罩 + + System.Windows.MessageBox.Show("连接错误", "ERR", MessageBoxButton.OK, MessageBoxImage.Exclamation); //连接失败提示 + return; } - SqlConnection conn_SC = new SqlConnection(Connstr_SC); - conn_SC.Open(); - conn_SC.Close(); - if (TEXT_SQLINK.IsChecked.GetValueOrDefault()) //连接数据库2测试 - { - if (TEXT_SQMOD2.Text == "Windows 身份认证") - { - Connstr_DBC = "server=" + TEXT_SQLIP2.Text + ";database=" + TEXT_SQLNAME2.Text + ";Trusted_Connection=SSPI"; + Wait_sql.Visibility = Visibility.Hidden; //关闭遮罩 - } - else + MessageBoxResult SqlShow = System.Windows.MessageBox.Show("数据库连接成功是否保存配置", "SQL", MessageBoxButton.YesNo, MessageBoxImage.Information); //连接成功提示是否保存 + if (SqlShow == MessageBoxResult.Yes) + { + if (TEXT_SQMOD.Text == "Windows 身份认证") SQL_MOD = 0; + else SQL_MOD = 1; + if (TEXT_SQMOD2.Text == "Windows 身份认证") SQL_MOD1 = 0; + else SQL_MOD1 = 1; + + SQL2 = TEXT_SQLINK.IsChecked.GetValueOrDefault(); //数据库对象2是否生效 + + UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(INIPath); //配置文件 + Configini.IniWritevalue("SQL_SERVER", "SQL1", TEXT_SQLIP.Text); //保存的配置 + Configini.IniWritevalue("SQL_SERVER", "SQL2", TEXT_SQLNAME.Text); + Configini.IniWritevalue("SQL_SERVER", "SQL3", SQL_MOD.ToString()); + Configini.IniWritevalue("SQL_SERVER", "SQL4", TEXT_SQLUSER.Text); + Configini.IniWritevalue("SQL_SERVER", "SQL5", TEXT_SQLPASWORD.Text); + Configini.IniWritevalue("SQL_SERVER", "SQL6", SQL2.ToString()); + if (SQL2) //数据库对象2生效则保存对象2配置 { - Connstr_DBC = "server=" + TEXT_SQLIP2.Text + ";database=" + TEXT_SQLNAME2.Text + ";User ID=" + TEXT_SQLUSER2.Text + ";Password=" + TEXT_SQLPASWORD2.Text; + Configini.IniWritevalue("SQL_SERVER", "SQL7", TEXT_SQLIP2.Text); + Configini.IniWritevalue("SQL_SERVER", "SQL8", TEXT_SQLNAME2.Text); + Configini.IniWritevalue("SQL_SERVER", "SQL9", SQL_MOD1.ToString()); + Configini.IniWritevalue("SQL_SERVER", "SQL10", TEXT_SQLUSER2.Text); + Configini.IniWritevalue("SQL_SERVER", "SQL11", TEXT_SQLPASWORD2.Text); } - SqlConnection conn_DBC = new SqlConnection(Connstr_DBC); - conn_DBC.Open(); - conn_DBC.Close(); + System.Windows.MessageBox.Show("保存完成"); + this.Close(); //退出窗口 } - - System.Windows.MessageBox.Show("数据库连接成功"); } private void TEXT_SQLINK_Checked(object sender, RoutedEventArgs e)