宜昌华友原料库管理软件
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.

323 lines
8.4 KiB

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Collections;
using System.Configuration;
using System.Xml;
namespace SSLMS.Common
{
public class StringUtil
{
/// <summary>
/// 获得日期
/// </summary>
/// <returns></returns>
public static string GetCurDateTimeString()
{
return System.DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
}
/// <summary>
/// 获得GUID
/// </summary>
/// <returns></returns>
public static string GetGUID()
{
return System.Guid.NewGuid().ToString();
}
/// <summary>
/// 获得计算机名
/// </summary>
/// <returns></returns>
public static string GetHostName()
{
return System.Net.Dns.GetHostName().ToString();
}
/// <summary>
/// 获得分离字符串中的某组字符
/// </summary>
/// <param name="ControlName"></param>
/// <param name="ch"></param>
/// <param name="index"></param>
/// <returns></returns>
public static string GetSplitStr(string ControlName, char[] ch, int index)
{
string[] arrTmp = ControlName.Split(ch);
return arrTmp[(1 == arrTmp.Length) ? 0 : index];
}
public static string strFormat(string str, string[] strPara)
{
return string.Format(str, strPara);
}
public static DataTable AddAll(DataTable dt, Hashtable ht)
{
if (0 == ht.Count)
{
ht.Add("name", "-");
ht.Add("value", "");
}
DataTable dtResult = dt;
if (null == dtResult)
{
dtResult = new DataTable();
foreach (DictionaryEntry d in ht)
{
dtResult.Columns.Add(d.Key.ToString());
}
}
if (0 == dtResult.Columns.Count)
{
dtResult = new DataTable();
foreach (DictionaryEntry d in ht)
{
dtResult.Columns.Add(d.Key.ToString());
}
}
DataRow dr = dtResult.NewRow();
foreach (DictionaryEntry d in ht)
{
dr[d.Key.ToString()] = d.Value;
}
dtResult.Rows.InsertAt(dr, 0);
return dtResult;
}
public static string ConfigGet(string str)
{
string sResult = str;
sResult = new AppSettingsReader().GetValue(str, typeof(string)).ToString().Trim();
return sResult;
}
/// <summary>
/// 设置配置文件
/// </summary>
/// <param name="connString"></param>
public static bool ConfigSet(string sFileName, string sKey, string sValue, out string sResult)
{
bool bResult = true;
sResult = string.Empty;
try
{
string sPath = string.Empty;
Assembly Asm = Assembly.GetExecutingAssembly();
XmlDocument xmlDoc = new XmlDocument();
sPath = Asm.Location.Substring(0, (Asm.Location.LastIndexOf("\\") + 1)) + sFileName;
xmlDoc.Load(sPath);
XmlNodeList nodeList = xmlDoc.SelectSingleNode("/configuration/appSettings").ChildNodes;
foreach (XmlNode xn in nodeList)//遍历所有子节点
{
try
{
XmlElement xe = (XmlElement)xn;
if (xe.GetAttribute("key").IndexOf(sKey) != -1)
{
xe.SetAttribute("value", sValue);
}
}
catch
{
}
}
xmlDoc.Save(sPath);
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
return bResult;
}
/// <summary>
/// IList转DataTable
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static DataTable ListToDataTable(IList list)
{
DataTable dtResult = new DataTable();
if (list.Count > 0)
{
PropertyInfo[] propertys = list[0].GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
dtResult.Columns.Add(pi.Name, pi.PropertyType);
}
for (int i = 0; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in propertys)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
object[] array = tempList.ToArray();
dtResult.LoadDataRow(array, true);
}
}
return dtResult;
}
/// <summary>
///DataTable转IList
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dt"></param>
/// <returns></returns>
public static IList<T> DataTableToList<T>(DataTable dt, Hashtable ht)
{
IList<T> lsResult = new List<T>();
DataTable dtTmp = dt.Clone();
PropertyInfo[] propertys = typeof(T).GetProperties();
foreach (PropertyInfo pi in propertys)
{
try
{
dtTmp.Columns[pi.Name].DataType = pi.PropertyType;
}
catch
{
}
}
foreach (DataRow dr in dt.Rows)
{
dtTmp.Rows.Add(dr.ItemArray);
T t = Activator.CreateInstance<T>();
string sKey = string.Empty;
foreach (PropertyInfo pi in propertys)
{
sKey = pi.Name;
try
{
if (ht.ContainsKey(sKey))
{
pi.SetValue(t, dtTmp.Rows[dtTmp.Rows.Count - 1][ht[sKey].ToString()], null);
}
else
{
pi.SetValue(t, dtTmp.Rows[dtTmp.Rows.Count - 1][sKey], null);
}
}
catch
{
}
}
lsResult.Add(t);
}
return lsResult;
}
/// <summary>
///IList转IList
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dt"></param>
/// <returns></returns>
public static IList<T> ListToList<T>(IList<T> lsIn, Hashtable ht)
{
IList<T> lsResult = new List<T>();
//DataTable dtTmp = dt.Clone();
//PropertyInfo[] propertys = typeof(T).GetProperties();
//foreach (PropertyInfo pi in propertys)
//{
// try
// {
// dtTmp.Columns[pi.Name].DataType = pi.PropertyType;
// }
// catch
// {
// }
//}
//foreach (DataRow dr in dt.Rows)
//{
// dtTmp.Rows.Add(dr.ItemArray);
// T t = Activator.CreateInstance<T>();
// string sKey = string.Empty;
// foreach (PropertyInfo pi in propertys)
// {
// sKey = pi.Name;
// try
// {
// if (ht.ContainsKey(sKey))
// {
// pi.SetValue(t, dtTmp.Rows[dtTmp.Rows.Count - 1][ht[sKey].ToString()], null);
// }
// else
// {
// pi.SetValue(t, dtTmp.Rows[dtTmp.Rows.Count - 1][sKey], null);
// }
// }
// catch
// {
// }
// }
// lsResult.Add(t);
//}
return lsResult;
}
}
}