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; namespace formula_manage.Windows { /// /// Sql.xaml 的交互逻辑 /// public partial class Sql : Window { public class IniFiles { public string path; [DllImport("kernel32")] //返回0表示失败,非0为成功 private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); [DllImport("kernel32")] //返回取得字符串缓冲区的长度 private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); /// /// 保存ini文件的路径 /// 调用示例:var ini = IniFiles("C:\file.ini"); /// /// public IniFiles(string iniPath) { this.path = iniPath; } /// /// 写Ini文件 /// 调用示例:ini.IniWritevalue("Server","name","localhost"); /// /// [缓冲区] /// 键 /// 值 public void IniWritevalue(string Section, string Key, string value) { WritePrivateProfileString(Section, Key, value, this.path); } /// /// 读Ini文件 /// 调用示例:ini.IniWritevalue("Server","name"); /// /// [缓冲区] /// 键 /// public string IniReadvalue(string Section, string Key) { StringBuilder temp = new StringBuilder(255); int i = GetPrivateProfileString(Section, Key, "", temp, 255, this.path); return temp.ToString(); } } public Sql() { WindowStartupLocation = WindowStartupLocation.CenterScreen; InitializeComponent(); } int SQL_MOD; int SQL_MOD1; int i; public string INIPath = Convert.ToString(System.AppDomain.CurrentDomain.BaseDirectory) + "formula.ini"; private void Window_SQL(object sender, RoutedEventArgs e) { IniFiles Configini = new 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"); TEXT_SQLINK.IsChecked = Boolean.Parse(Configini.IniReadvalue("SQL_SERVER", "SQL6")); 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"); 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; IniFiles Configini = new 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", TEXT_SQLINK.IsChecked.ToString()); 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 Button_Click_1(object sender, RoutedEventArgs e) { } } }