using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Lskj.Model; using Lskj.Core; using Lskj.Business.Impl; using Lskj.Util; using Lskj.Control; using Lskj.Data; using System.Net; using System.Data.SqlClient; using System.IO; using System.Runtime.InteropServices; namespace PostToWX { public partial class Form1 : Form { public Form1() { InitializeComponent(); //DBConfig.Instance.CreateConnection(); access_Token = GetAccessToken(corpid, corpsecret); txtServerName.Text = IniReadValue(company, "serverName"); txtDBName.Text = IniReadValue(company, "dbName"); txtUser.Text = IniReadValue(company, "user"); txtPassword.Text = IniReadValue(company, "password"); textBox6.Text = IniReadValue(company, "interval"); if (string.IsNullOrEmpty(textBox6.Text)) textBox6.Text = "30"; textBox6.LostFocus += new EventHandler(textBox6_LostFocus); } bool isExecing = false; /// /// 公司id /// string corpid = "wwe9e9606de71c3a34"; /// /// 公司密匙 /// string corpsecret = "J-oM3Hh5XisrKVkPcxuRD4JJXeF6895g3Rfcdnmz9rE"; /// /// 接口登录凭证 /// string access_Token; /// /// Log文件夹目录 /// string folderPath; /// /// 日志文件目录 /// string filePath; /// /// ini文件目录 /// string Path = System.IO.Directory.GetCurrentDirectory() + "\\"+"Setting.ini"; /// /// ini文件内段落名 /// string company = "同步工具"; /// /// 初始时间间隔 /// int min = 10; /// /// 获取Access_Token /// /// /// /// public string GetAccessToken(string corpid, string corpsecret) { string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}", corpid, corpsecret); AccessResponseMode json = GetUtil.GetJson(url); if (json.errcode != 0) { string str = "更新Access_Token时失败" + "(" + errorMsg(json.errcode) + ")"; textBox1.Text += str + "\r\n"; } return json.access_token; } /// /// 新建部门 /// /// public void PostDepartment(DataRow dr) { string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/create?access_token={0}", access_Token); string department = JsonUtil.ToJsonObject(dr); department = department.Substring(1, department.Length - 2); DepartmentResponseMode errcode = PostUtil.PostUrl(url, department); if (errcode.errcode != 0) { string str = "新建" + dr["name"].ToString() + "部门->失败" + "(" + errorMsg(errcode.errcode) + ")"; textBox1.Text += str + "\r\n"; } else { string sqlupdate = string.Format("update P_EmployeeSpecTab set updateflag = 0 where empspec_id = {0}", dr["id"]); SqlHelper.ExecuteNonQuery(sqlupdate); //string str = "新建" + dr["name"].ToString() + "部门->成功"; //textBox1.Text += str + "\r\n"; } } /// /// 更新部门 /// /// public void UpdateDepartment(DataRow dr) { string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/update?access_token={0}", access_Token); string department = JsonUtil.ToJsonObject(dr); department = department.Substring(1, department.Length - 2); EmployeeResponseMode errcode = PostUtil.PostUrl(url, department); if (errcode.errcode != 0) { if (errcode.errcode == 60003) { PostDepartment(dr); } else { string str = "更新部门" + dr["name"].ToString() + "->失败" + "(" + errorMsg(errcode.errcode) + ")"; textBox1.Text += str + "\r\n"; } } else { string sqlupdate = string.Format("update P_EmployeeSpecTab set updateflag = 0 where empspec_id = {0}", dr["id"]); SqlHelper.ExecuteNonQuery(sqlupdate); //string str = "更新部门" + dr["name"].ToString() + "->成功"; //textBox1.Text += str + "\r\n"; } } /// /// 删除部门 /// /// public void DeleteDepartment(string userid) { string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/department/delete?access_token={0}&id={1}", access_Token, userid); EmployeeResponseMode errcode = GetUtil.GetJson(url); if (errcode.errcode != 0) { if (errcode.errcode == 60003) { string sqlupdate = string.Format("update P_EmployeeSpecTab set updateflag = 0 where empspec_id = {0}", userid); SqlHelper.ExecuteNonQuery(sqlupdate); //string str = "删除部门" + userid + "->成功"; //textBox1.Text += str + "\r\n"; } else { string str = "删除部门" + userid + "->失败" + "(" + errorMsg(errcode.errcode) + ")"; textBox1.Text += str + "\r\n"; } } else { string sqlupdate = string.Format("update P_EmployeeSpecTab set updateflag = 0 where empspec_id = {0}", userid); SqlHelper.ExecuteNonQuery(sqlupdate); //string str = "删除部门" + userid + "->成功"; //textBox1.Text += str + "\r\n"; } } /// /// 写入日志事件 /// /// private void inPut(string log) { //判断是否存在此TXT文件 if (!System.IO.File.Exists(filePath)) { FileStream fs1 = new FileStream(filePath, FileMode.Create, FileAccess.Write);//创建写入文件 StreamWriter sw = new StreamWriter(fs1); sw.WriteLine(log);//开始写入值 sw.Close(); fs1.Close(); } else { FileStream fs1 = new FileStream(filePath, FileMode.Append, FileAccess.Write);//获取文件尾行 StreamWriter sw = new StreamWriter(fs1); sw.WriteLine(log);//开始写入值 sw.Close(); fs1.Close(); } } /// /// 新建人员 /// /// public void PostEmployee(DataRow dr) { string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/create?access_token={0}", access_Token); string employee = JsonUtil.ToJsonObject(dr); employee = employee.Substring(1, employee.Length - 2); DepartmentResponseMode errcode = PostUtil.PostUrl(url, employee); if (errcode.errcode != 0) { if (errcode.errcode == 60106) { string sqlupdate = string.Format("update P_EmployeeTab set wxMsg = '{0}' where employeeid = {1}", "邮箱已存在, 新增失败!", dr["userid"]); SqlHelper.ExecuteNonQuery(sqlupdate); } else if (errcode.errcode == 60104) { string sqlupdate = string.Format("update P_EmployeeTab set wxMsg = '{0}' where employeeid = {1}", "电话号码已存在, 新增失败!", dr["userid"]); SqlHelper.ExecuteNonQuery(sqlupdate); } else { string str = "新建人员" + dr["name"].ToString() + "->失败:" + errcode.errmsg; textBox1.Text += str + "\r\n"; } } else { string sqlupdate = string.Format("update P_EmployeeTab set updateflag = 0,wxMsg='成功' where employeeid = {0}", dr["userid"]); SqlHelper.ExecuteNonQuery(sqlupdate); //string str = "新建人员" + dr["name"].ToString() + "->成功"; //textBox1.Text += str + "\r\n"; } } /// /// 更新人员 /// /// public void UpdateEmployee(DataRow dr) { string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token={0}", access_Token); string employee = JsonUtil.ToJsonObject(dr); employee = employee.Substring(1, employee.Length - 2); EmployeeResponseMode errcode = PostUtil.PostUrl(url, employee); if (errcode.errcode != 0) { if (errcode.errcode == 60111) { PostEmployee(dr); } else { string str = "更新人员" + dr["name"].ToString() + "->失败" + "(" + errorMsg(errcode.errcode) + ")"; textBox1.Text += str + "\r\n"; } } else { string sqlupdate = string.Format("update P_EmployeeTab set updateflag = 0 where employeeid = {0}", dr["userid"]); SqlHelper.ExecuteNonQuery(sqlupdate); //string str = "更新人员" + dr["name"].ToString() + "->成功"; //textBox1.Text += str + "\r\n"; } } /// /// 删除人员 /// /// public void DeleteEmployee(DataRow dr) { try { string url = string.Format("https://qyapi.weixin.qq.com/cgi-bin/user/delete?access_token={0}&userid={1}", access_Token,dr["userid"]+""); EmployeeResponseMode errcode = GetUtil.GetJson(url); if (errcode.errcode != 0) { if (errcode.errcode == 60111) { string str = "删除人员" + dr["EmployeeName"] + "->失败!未存在此userid的人员在企业微信内"; textBox1.Text += str + "\r\n"; string sqlupdate = string.Format("update P_EmployeeTab set wxMsg='{1}' where employeeid = {0}", dr["userid"] + "", str); SqlHelper.ExecuteNonQuery(sqlupdate); } else { string str = "删除人员" + dr["EmployeeName"] + "->失败" + "(" + errorMsg(errcode.errcode) + ")"; textBox1.Text += str + "\r\n"; string sqlupdate = string.Format("update P_EmployeeTab set wxMsg='{1}' where employeeid = {0}", dr["userid"] + "", str); SqlHelper.ExecuteNonQuery(sqlupdate); } } else { string sqlupdate = string.Format("update P_EmployeeTab set updateflag = 0,wxMsg='删除成功' where employeeid = {0}", dr["userid"] + ""); SqlHelper.ExecuteNonQuery(sqlupdate); //string str = "删除人员" + userid + "->成功"; //textBox1.Text += str + "\r\n"; } } catch (Exception ex) { } } public void PostAll() { if (!this.isExecing) { try { this.textBox1.Text += "------------开始同步(" + DateTime.Now + ")--------------\r\n"; this.isExecing = true; //更新部门 string sqlupdatedepartment = "select CoAliasName name,dbo.p_getpy(CoAliasName)+CAST(empspec_id as varchar(50)) name_en,empspec_id id,CONVERT(int,right(speciesNo,2)) 'order',isnull((select top 1 empspec_id from P_EmployeeSpecTab where speciesNo=SUBSTRING(b.speciesno,1,len(b.speciesno)-2)),-1) as parentid from P_EmployeeSpecTab b where empspec_ban=0 and updateflag = 1 and empspec_id != 1"; DataTable dtupdatedepartment = SqlHelper.ExecuteDataTable(sqlupdatedepartment); foreach (DataRow dr in dtupdatedepartment.Rows) { Application.DoEvents(); UpdateDepartment(dr); } //更新人员 string sqlupdateemployee = @"select employeeid as userid,EmployeeName as name,b.empspec_id as department,case when p_emp_sex='男' then 1 else 2 end as gender,p_emp_idaddress as 'address', p_emp_email as email,(select top 1 post_name from P_EmployeePostTab where post_id=p_emp_postid) as position,p_emp_phone as mobile from p_employeeTab a,p_EmployeeSpecTab b where sign=0 and a.updateflag = 1 and isnull(p_emp_phone,'')<>'' and EmployeeName!='管理员' and a.SpeciesNo=b.SpeciesNo"; DataTable dtupdateemployee = SqlHelper.ExecuteDataTable(sqlupdateemployee); foreach (DataRow dr in dtupdateemployee.Rows) { Application.DoEvents(); UpdateEmployee(dr); } //删除人员 string sqldeleteemployee = "select employeeid as userid,EmployeeName from P_EmployeeTab where sign=1 and EmployeeName!='管理员'"; DataTable dtdeleteemployee = SqlHelper.ExecuteDataTable(sqldeleteemployee); //sqldeleteemployee = "select employeeid as userid,EmployeeName from P_EmployeeTab where sign=1 and EmployeeName='赵丽明'"; //dtdeleteemployee = SqlHelper.ExecuteDataTable(sqldeleteemployee); foreach (DataRow dr in dtdeleteemployee.Rows) { Application.DoEvents(); DeleteEmployee(dr); } //删除部门 string sqldeletedepartment = "select empspec_id as id from P_EmployeeSpecTab where empspec_ban=1 order by LEN(SpeciesNo) desc"; DataTable dtdeletedepartment = SqlHelper.ExecuteDataTable(sqldeletedepartment); foreach (DataRow dr in dtdeletedepartment.Rows) { Application.DoEvents(); DeleteDepartment(dr["id"].ToString()); } this.textBox1.Text += "\r\n------------本次同步完成(" + DateTime.Now + ")--------------"; } catch (Exception) { } finally { this.WriteLocalLog(); this.isExecing = false; } } } /// /// 开始刷新按钮事件 /// /// /// private void btnRefrash_Click(object sender, EventArgs e) { try { ConnectServer(true); timer1.Interval = Convert.ToInt16(textBox6.Text) * 60 * 1000; timer1.Enabled = true; this.PostAll(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } /// /// 更新人员计时器事件 /// /// /// private void timer1_Tick(object sender, EventArgs e) { this.PostAll(); } /// /// 每小时刷新Access_Token /// /// /// private void timer2_Tick(object sender, EventArgs e) { access_Token = GetAccessToken(corpid, corpsecret); } /// /// 新的响应对象 /// public class AccessResponseMode { public int errcode; public string errmsg; public string access_token; public int expires_in; } public class DepartmentResponseMode { public int errcode; public string errmsg; public int id; } public class EmployeeResponseMode { public int errcode; public string errmsg; } public void WriteLocalLog() { try { //获取程序目录,并完整日志文件夹目录 folderPath = System.IO.Directory.GetCurrentDirectory() + "\\Log"; //TXT日志目录 filePath = folderPath + "\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt"; //判断是否存在文件夹 if (!System.IO.Directory.Exists(folderPath)) { //创建文件夹 Directory.CreateDirectory(folderPath); } string log = textBox1.Text.ToString(); inPut(log); } catch (Exception ex) { } } /// /// 错误码集合 /// /// /// public static String errorMsg(int errorcode) { String errmsg = ""; switch (errorcode) { case -1: errmsg = "系统繁忙 "; break; case 0: errmsg = "请求成功 "; break; case 40001: errmsg = "获取access_token时Secret错误,或者access_token无效 "; break; case 40002: errmsg = "不合法的凭证类型"; break; case 40003: errmsg = "不合法的UserID"; break; case 40004: errmsg = "不合法的媒体文件类型 "; break; case 40005: errmsg = "不合法的文件类型 "; break; case 40006: errmsg = "不合法的文件大小"; break; case 40007: errmsg = "不合法的媒体文件id"; break; case 40008: errmsg = "不合法的消息类型 "; break; case 40013: errmsg = "不合法的corpid "; break; case 40014: errmsg = "不合法的access_token"; break; case 40015: errmsg = "不合法的菜单类型"; break; case 40016: errmsg = "不合法的按钮个数"; break; case 40017: errmsg = "不合法的按钮类型"; break; case 40018: errmsg = "不合法的按钮名字长度"; break; case 40019: errmsg = "不合法的按钮KEY长度"; break; case 40020: errmsg = "不合法的按钮URL长度 "; break; case 40021: errmsg = "不合法的菜单版本号 "; break; case 40022: errmsg = "不合法的子菜单级数"; break; case 40023: errmsg = "不合法的子菜单按钮个数"; break; case 40024: errmsg = "不合法的子菜单按钮类型"; break; case 40025: errmsg = "不合法的子菜单按钮名字长度"; break; case 40026: errmsg = "不合法的子菜单按钮KEY长度"; break; case 40027: errmsg = "不合法的子菜单按钮URL长度"; break; case 40028: errmsg = "不合法的自定义菜单使用员工"; break; case 40029: errmsg = "不合法的oauth_code"; break; case 40031: errmsg = "不合法的UserID列表"; break; case 40032: errmsg = "不合法的UserID列表长度"; break; case 40033: errmsg = "不合法的请求字符,不能包含\\uxxxx格式的字符 "; break; case 40035: errmsg = "不合法的参数 "; break; case 40038: errmsg = "不合法的请求格式 "; break; case 40039: errmsg = "不合法的URL长度"; break; case 40040: errmsg = "不合法的插件token"; break; case 40041: errmsg = "不合法的插件id"; break; case 40042: errmsg = "不合法的插件会话"; break; case 40048: errmsg = "url中包含不合法domain"; break; case 40054: errmsg = "不合法的子菜单url域名"; break; case 40055: errmsg = "不合法的按钮url域名 "; break; case 40056: errmsg = "不合法的agentid"; break; case 40057: errmsg = "不合法的callbackurl"; break; case 40058: errmsg = "不合法的红包参数 "; break; case 40059: errmsg = "不合法的上报地理位置标志位 "; break; case 40060: errmsg = "设置上报地理位置标志位时没有设置callbackurl"; break; case 40061: errmsg = "设置应用头像失败"; break; case 40062: errmsg = "不合法的应用模式"; break; case 40063: errmsg = "红包参数为空"; break; case 40064: errmsg = "管理组名字已存在"; break; case 40065: errmsg = "不合法的管理组名字长度"; break; case 40066: errmsg = "不合法的部门列表"; break; case 40067: errmsg = "标题长度不合法 "; break; case 40068: errmsg = "不合法的标签ID"; break; case 40069: errmsg = "不合法的标签ID列表"; break; case 40070: errmsg = "列表中所有标签(用户)ID都不合法 "; break; case 40071: errmsg = "不合法的标签名字,标签名字已经存在 "; break; case 40072: errmsg = "不合法的标签名字长度"; break; case 40073: errmsg = "不合法的openid"; break; case 40074: errmsg = "news消息不支持指定为高保密消息"; break; case 41001: errmsg = "缺少access_token参数 "; break; case 41002: errmsg = "缺少corpid参数"; break; case 41003: errmsg = "缺少refresh_token参数"; break; case 41004: errmsg = "缺少secret参数"; break; case 41005: errmsg = "缺少多媒体文件数据"; break; case 41006: errmsg = "缺少media_id参数"; break; case 41007: errmsg = "缺少子菜单数据"; break; case 41008: errmsg = "缺少oauth code"; break; case 41009: errmsg = "缺少UserID"; break; case 41010: errmsg = "缺少url"; break; case 41011: errmsg = "缺少agentid"; break; case 41012: errmsg = "缺少应用头像mediaid"; break; case 41013: errmsg = "缺少应用名字"; break; case 41014: errmsg = "缺少应用描述"; break; case 41015: errmsg = "缺少Content"; break; case 41016: errmsg = "缺少标题"; break; case 41017: errmsg = "缺少标签ID"; break; case 41018: errmsg = "缺少标签名字 "; break; case 42001: errmsg = "access_token超时 "; break; case 42002: errmsg = "refresh_token超时"; break; case 42003: errmsg = "oauth_code超时 "; break; case 42004: errmsg = "插件token超时"; break; case 43001: errmsg = "需要GET请求"; break; case 43002: errmsg = "需要POST请求"; break; case 43003: errmsg = "需要HTTPS"; break; case 43004: errmsg = "需要接收者关注"; break; case 43005: errmsg = "需要好友关系"; break; case 43006: errmsg = "需要订阅"; break; case 43007: errmsg = "需要授权"; break; case 43008: errmsg = "需要支付授权"; break; case 43009: errmsg = "需要员工已关注"; break; case 43010: errmsg = "需要处于回调模式"; break; case 43011: errmsg = "需要企业授权"; break; case 44001: errmsg = "多媒体文件为空"; break; case 44002: errmsg = "POST的数据包为空"; break; case 44003: errmsg = "图文消息内容为空"; break; case 44004: errmsg = "文本消息内容为空"; break; case 45001: errmsg = "多媒体文件大小超过限制"; break; case 45002: errmsg = "消息内容超过限制"; break; case 45003: errmsg = "标题字段超过限制"; break; case 45004: errmsg = "描述字段超过限制"; break; case 45005: errmsg = "链接字段超过限制"; break; case 45006: errmsg = "图片链接字段超过限制"; break; case 45007: errmsg = "语音播放时间超过限制"; break; case 45008: errmsg = "图文消息超过限制"; break; case 45009: errmsg = "接口调用超过限制"; break; case 45010: errmsg = "创建菜单个数超过限制"; break; case 45015: errmsg = "回复时间超过限制"; break; case 45016: errmsg = "系统分组,不允许修改"; break; case 45017: errmsg = "分组名字过长"; break; case 45018: errmsg = "分组数量超过上限"; break; case 45024: errmsg = "账号数量超过上限"; break; case 46001: errmsg = "不存在媒体数据"; break; case 46002: errmsg = "不存在的菜单版本"; break; case 46003: errmsg = "不存在的菜单数据"; break; case 46004: errmsg = "不存在的员工"; break; case 47001: errmsg = "解析JSON/XML内容错误"; break; case 48002: errmsg = "Api禁用"; break; case 50001: errmsg = "redirect_uri未授权"; break; case 50002: errmsg = "员工不在权限范围"; break; case 50003: errmsg = "应用已停用"; break; case 50004: errmsg = "员工状态不正确(未关注状态) "; break; case 50005: errmsg = "企业已禁用"; break; case 60001: errmsg = "部门长度不符合限制"; break; case 60002: errmsg = "部门层级深度超过限制"; break; case 60003: errmsg = "部门不存在"; break; case 60004: errmsg = "父亲部门不存在"; break; case 60005: errmsg = "不允许删除有成员的部门"; break; case 60006: errmsg = "不允许删除有子部门的部门"; break; case 60007: errmsg = "不允许删除根部门"; break; case 60008: errmsg = "部门名称已存在"; break; case 60009: errmsg = "部门名称含有非法字符"; break; case 60010: errmsg = "部门存在循环关系"; break; case 60011: errmsg = "管理员权限不足,(user/department/agent)无权限"; break; case 60012: errmsg = "不允许删除默认应用"; break; case 60013: errmsg = "不允许关闭应用"; break; case 60014: errmsg = "不允许开启应用"; break; case 60015: errmsg = "不允许修改默认应用可见范围"; break; case 60016: errmsg = "不允许删除存在成员的标签"; break; case 60017: errmsg = "不允许设置企业"; break; case 60102: errmsg = "UserID已存在"; break; case 60103: errmsg = "手机号码不合法"; break; case 60104: errmsg = "手机号码已存在"; break; case 60105: errmsg = "邮箱不合法"; break; case 60106: errmsg = "邮箱已存在"; break; case 60107: errmsg = "微信号不合法"; break; case 60108: errmsg = "微信号已存在"; break; case 60109: errmsg = "QQ号已存在"; break; case 60110: errmsg = "部门个数超出限制"; break; case 60111: errmsg = "UserID不存在"; break; case 60112: errmsg = "成员姓名不合法"; break; case 60113: errmsg = "身份认证信息(微信号/手机/邮箱)不能同时为空 "; break; case 60114: errmsg = "性别不合法"; break; case 60129: errmsg = "用户设置了拒绝邀请"; break; default: errmsg = "没有此错误码!" + "(" + errorcode + ")"; break; } return errmsg; } /// /// 说明:连接服务器 /// 创建人:龚宇超 /// 创建日期:2017-08-09 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// if set to true [is save]. private void ConnectServer(bool isSave = false) { string serverName = this.txtServerName.Text.Trim(); string dbName = this.txtDBName.Text.Trim(); string user = this.txtUser.Text.Trim(); string password = this.txtPassword.Text.Trim(); if (string.IsNullOrWhiteSpace(serverName)) { MessageUtil.Show(ResourceKeys.ServerNameIsNull); return; } if (string.IsNullOrWhiteSpace(dbName)) { MessageUtil.Show(ResourceKeys.ServerDBIsNull); return; } if (string.IsNullOrWhiteSpace(user)) { MessageUtil.Show("请重新输入用户名"); return; } // 测试数据库连接 try { if (CreateConnection()) { if (isSave) { } else { IniWriteValue(company, "serverName", serverName); IniWriteValue(company, "dbName", dbName); IniWriteValue(company, "user", user); IniWriteValue(company, "password", password); MessageUtil.Show(ResourceKeys.ConnectSuccess); } } else { MessageUtil.Show(ResourceKeys.ConnectFault); } } catch (Exception) { MessageUtil.Show(ResourceKeys.ConnectFault); } } /// /// 说明:创建数据库连接 /// 创建人:龚宇超 /// 创建日期:2017-08-07 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// true if XXXX, false otherwise. public bool CreateConnection() { string connStr = GetConnection(); if (SqlHelper._connection != null) { try { SqlHelper._connection.Close(); SqlHelper._connection.Dispose(); } catch (Exception) { } SqlHelper._connection = null; } try { SqlHelper._connection = new SqlConnection(connStr); SqlHelper._connection.Open(); return true; } catch (Exception ex) { LogHelper.Instance.WriteLog(ex.Message); } return false; } /// /// 获取连接服务器的字符串 /// /// public string GetConnection() { return string.Format("Server={0};Database={1};Persist Security Info=True;User ID={2};Password={3};Connection Timeout=5;MultipleActiveResultSets=true", txtServerName.Text.ToString(), txtDBName.Text.ToString(), txtUser.Text.ToString(), txtPassword.Text.ToString()); } /// /// 连接服务器按钮事件 /// /// /// private void button1_Click_1(object sender, EventArgs e) { ConnectServer(); } /// /// ini文件获取数据 /// /// /// /// /// /// /// /// [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section, string key, string defVal, StringBuilder retVal, int size, string filePath); /// /// ini文件写入数据 /// /// /// /// /// /// [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); /// /// 写INI文件 /// /// 段落 /// 键 /// 值 public void IniWriteValue(string section, string key, string iValue) { WritePrivateProfileString(section, key, iValue, this.Path); } /// /// 读取INI文件 /// /// 段落 /// 键 /// 返回的键值 public string IniReadValue(string section, string key) { StringBuilder temp = new StringBuilder(255); int i = GetPrivateProfileString(section, key, "", temp, 255, this.Path); return temp.ToString(); } /// /// 时间间隔输入框失去焦点事件 /// /// /// private void textBox6_LostFocus(object sender, EventArgs e) { string checkStr = textBox6.Text.ToString(); if (string.IsNullOrEmpty(checkStr)) textBox6.Text = "30"; int check = Convert.ToInt32(textBox6.Text.ToString()); if (check < 30) { textBox6.Text = "30"; } min = Convert.ToInt32(textBox6.Text.ToString()); IniWriteValue(company, "interval", textBox6.Text.ToString()); } /// /// 时间间隔输入框只能输入数字 /// /// /// private void textBox6_KeyPress(object sender, KeyPressEventArgs e) { if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8) { e.Handled = true; } } #region 测试使用按钮及废弃事件 int length = 10; /// /// 删除部门按钮 /// /// /// private void button1_Click(object sender, EventArgs e) { string sql = string.Format("select empspec_id from P_EmployeeSpecTab where empspec_ban=0 and empspec_id != 1 and len(speciesno) = {0}", length); length = length - 2; DataTable dt = SqlHelper.ExecuteDataTable(sql); foreach (DataRow dr in dt.Rows) { DeleteDepartment(dr["empspec_id"].ToString()); } } private void Form1_Load(object sender, EventArgs e) { this.timer1.Interval = Convert.ToInt32(this.textBox6.Text) * 60 * 1000; } ///// ///// 新建部门按钮事件 ///// ///// ///// //private void btnCreateDepartment_Click(object sender, EventArgs e) //{ // //程序开始运行记录 // string beginInput = "<<新建部门开始时间:" + DateTime.Now.ToLocalTime().ToString() + ">>"; // textBox1.Text += beginInput + "\r\n"; // string sql = "select CoAliasName name,dbo.p_getpy(CoAliasName)+CAST(empspec_id as varchar(50)) name_en,empspec_id id,CONVERT(int,right(speciesNo,2)) 'order',isnull((select top 1 empspec_id from P_EmployeeSpecTab where speciesNo=SUBSTRING(b.speciesno,1,len(b.speciesno)-2)),-1) as parentid from P_EmployeeSpecTab b where empspec_ban=0 and empspec_id != 1"; // DataTable dt = SqlHelper.ExecuteDataTable(sql); // foreach (DataRow dr in dt.Rows) // { // PostDepartment(dr); // } // string sqlupdateDelete = "update P_EmployeeSpecTab set updateflag = 0 where empspec_ban = 1 and updateflag = 1"; // SqlHelper.ExecuteNonQuery(sqlupdateDelete); // string record = "<<结束时间:" + DateTime.Now.ToLocalTime().ToString() + ">>"; // textBox1.Text += record + "\r\n"; //} ///// ///// 新建人员按钮事件 ///// ///// ///// //private void btnCreateEmployee_Click(object sender, EventArgs e) //{ // //程序开始运行记录 // string beginInput = "<<新建人员开始时间:" + DateTime.Now.ToLocalTime().ToString() + ">>"; // textBox1.Text += beginInput + "\r\n"; // string sql = "select top 200 employeeid as userid,EmployeeName as name,b.empspec_id as department,p_emp_sex as gender,p_emp_idaddress as 'address',p_emp_email as email,p_emp_postion as position,p_emp_linkphone1 as mobile from p_employeeTab a,p_EmployeeSpecTab b where sign=0 and EmployeeName!='管理员' and a.SpeciesNo=b.SpeciesNo"; // DataTable dt = SqlHelper.ExecuteDataTable(sql); // foreach (DataRow dr in dt.Rows) // { // PostEmployee(dr); // } // string sqlupdateDelete = "update p_employeeTab set updateflag = 0 where sign = 1 and updateflag = 1"; // SqlHelper.ExecuteNonQuery(sqlupdateDelete); // string record = "<<结束时间:" + DateTime.Now.ToLocalTime().ToString() + ">>"; // textBox1.Text += record + "\r\n"; //} ///// ///// 停止刷新按钮事件 ///// ///// ///// //private void btnStop_Click(object sender, EventArgs e) //{ // timer1.Enabled = false; //} #endregion } }