You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

190 lines
8.7 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.Shapes;
using System.Data.SqlClient;
using System.Net.NetworkInformation;
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Data.SqlTypes;
namespace formula_manage.Windows
{
/// <summary>
/// Sql.xaml 的交互逻辑
/// </summary>
public partial class Sql : Window
{
public Sql()
{
WindowStartupLocation = WindowStartupLocation.CenterScreen;
InitializeComponent();
}
int SQL_MOD;
int SQL_MOD1;
int i;
bool SQL2;
public string INIPath = Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "formula.ini";
private void Window_SQL(object sender, RoutedEventArgs e)
{
UserClass.IniFile.IniFiles Configini = new UserClass.IniFile.IniFiles(INIPath);
TEXT_SQLIP.Text = Configini.IniReadvalue("SQL_SERVER", "SQL1"); //读配置文件
TEXT_SQLNAME.Text = Configini.IniReadvalue("SQL_SERVER", "SQL2");
TEXT_SQMOD.Text = Configini.IniReadvalue("SQL_SERVER", "SQL3");
TEXT_SQLUSER.Text = Configini.IniReadvalue("SQL_SERVER", "SQL4");
TEXT_SQLPASWORD.Text = Configini.IniReadvalue("SQL_SERVER", "SQL5");
SQL2 = Boolean.Parse(Configini.IniReadvalue("SQL_SERVER", "SQL6")); //数据库对象2是否生效
TEXT_SQLIP2.Text = Configini.IniReadvalue("SQL_SERVER", "SQL7");
TEXT_SQLNAME2.Text = Configini.IniReadvalue("SQL_SERVER", "SQL8");
TEXT_SQMOD2.Text = Configini.IniReadvalue("SQL_SERVER", "SQL9");
TEXT_SQLUSER2.Text = Configini.IniReadvalue("SQL_SERVER", "SQL10");
TEXT_SQLPASWORD2.Text = Configini.IniReadvalue("SQL_SERVER", "SQL11");
TEXT_SQLINK.IsChecked = SQL2; //数据库对象2控件属性是否生效
TEXT_SQLIP2.IsEnabled = SQL2;
TEXT_SQLNAME2.IsEnabled = SQL2;
TEXT_SQMOD2.IsEnabled = SQL2;
TEXT_SQLUSER2.IsEnabled = SQL2;
TEXT_SQLPASWORD2.IsEnabled = SQL2;
int.TryParse(Configini.IniReadvalue("SQL_SERVER", "SQL3"), out i); //读数据库状态配置文件
if (i == 0) TEXT_SQMOD.Text = "Windows 身份认证";
else TEXT_SQMOD.Text = "SQL SERVER 身份认证";
int.TryParse(Configini.IniReadvalue("SQL_SERVER", "SQL9"), out i);
if (i == 0) TEXT_SQMOD2.Text = "Windows 身份认证";
else TEXT_SQMOD2.Text = "SQL SERVER 身份认证";
}
private void Button_Click(object sender, RoutedEventArgs e)
{
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配置
{
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);
}
System.Windows.MessageBox.Show("保存完成");
this.Close(); //退出窗口
}
private async void Button_Click_1(object sender, RoutedEventArgs e)
{
string Connstr_SC;
string Connstr_DBC;
Wait_sql.Visibility = Visibility.Visible;//显示遮罩
try
{
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();
}
}
catch (Exception)
{
Wait_sql.Visibility = Visibility.Hidden; //关闭遮罩
System.Windows.MessageBox.Show("连接错误", "ERR", MessageBoxButton.OK, MessageBoxImage.Exclamation); //连接失败提示
return;
}
Wait_sql.Visibility = Visibility.Hidden; //关闭遮罩
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配置
{
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);
}
System.Windows.MessageBox.Show("保存完成");
this.Close(); //退出窗口
}
}
private void TEXT_SQLINK_Checked(object sender, RoutedEventArgs e)
{
SQL2 = TEXT_SQLINK.IsChecked.GetValueOrDefault(); //数据库对象2是否生效
TEXT_SQLIP2.IsEnabled = SQL2; //数据库对象2控件属性
TEXT_SQLNAME2.IsEnabled = SQL2;
TEXT_SQMOD2.IsEnabled = SQL2;
TEXT_SQLUSER2.IsEnabled = SQL2;
TEXT_SQLPASWORD2.IsEnabled = SQL2;
}
}
}