/// <summary> /// 调用存储过程返回值 /// </summary> /// <param name="port">端口号:1433,0,def 会被忽略</param> /// <param name="instance">实例名:MSSQLSERVER,0,def 会被忽略</param> /// <param name="uid">SQL登录用户名</param> /// <param name="password">SQL登录密码</param> /// <param name="dbname">数据库</param> /// <param name="rstsq">运行的usp开头的存储过程</param> /// <param name="rspara">存储过程参数竖线分隔多个参数</param> /// <returns>一个字符串(可能是数字),有些过程反回的DATATABLE会被拼成一个分号分隔的长字符串</returns> protected static string GetSqlProcValue(string port, string instance, string uid, string password, string dbname, string rstsq, string rspara) { string mess = ""; //1.处理密文 if (password.Length > 2) { pwd_ pwds = new pwd_("8jd72jdi", "j9ks8726"); password = pwds.Decode(password + ""); } else { return("password [" + password + "] is too short !--51ak"); } if (password.Contains("@51ak")) { password = password.Replace("@51ak", ""); } else { return("password [" + password + "] is unrecognized !--51ak"); } //2.处理端口 if (port == "0" || port == "def" || port == "1433") { port = ""; } else { int cport = c_.c_int(port); if (cport > 0) { port = "," + cport.ToString(); } else { return("Sql port " + port + "unrecognized !--51ak"); } } //2.处理实例 if (instance == "0" || instance == "def" || instance == "MSSQLSERVER") { instance = ""; } else { instance = "\\" + instance.ToString(); } string connstr = string.Format("server={0}{1}{2};uid={3};password={4};database={5};", "127.0.0.1", port, instance, uid, password, dbname); try { if (rstsq.Contains("usp_zabbix_discovery")) { sql_ ooo = new sql_(connstr); SqlCommand cmd = new SqlCommand(); cmd.CommandText = rstsq; DataTable dt = ooo.get_datatable(cmd); StringBuilder sb_s1 = new StringBuilder(); int allcount = dt.Rows.Count; if (allcount > 0) { sb_s1.Append("{\"data\":["); for (int i = 0; i < dt.Rows.Count; i++) { sb_s1.Append("{\"{#FSNAME}\":\"" + dt.Rows[i][0].ToString() + "\",\"{#FSTYPE}\":\"" + dt.Rows[i][1].ToString() + "\"}"); if (i < allcount - 1) { sb_s1.Append(","); } } sb_s1.Append(" ]}"); } mess = sb_s1.ToString(); // } else if (rstsq.Contains("usp")) { sql_ ooo = new sql_(connstr); SqlCommand cmd = new SqlCommand(); cmd.CommandText = rstsq; if (rspara.Length > 0 && rspara != "null") { SqlParameter ccc = new SqlParameter("@para", SqlDbType.VarChar, 1000); ccc.Value = rspara; cmd.Parameters.Add(ccc); } DataTable dt = ooo.get_datatable(cmd); StringBuilder sb_s1 = new StringBuilder(); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { if (i > 0) { sb_s1.Append(","); } sb_s1.Append(dt.Rows[i][0].ToString()); } } mess = sb_s1.ToString(); } else { return("rstsq is unrecognized !--51ak"); } } catch (Exception ed) { return(ed.Message); } return(mess); }
/// <summary> /// 字符串加密后的密文 /// </summary> /// <param name="oldstr">原文</param> /// <returns></returns> protected static string GetPasswordStr(string oldstr) { pwd_ pwds = new pwd_("8jd72jdi", "j9ks8726"); return(pwds.Encode(oldstr + "@51ak")); }