项目用到的知识点总结,欢迎大家吐槽:
/// <summary>
/// 转换非yyyy-MM-dd的字符串为DateTime类型
/// </summary>
public static void ConvertDateFormat() {
string orginStr = "test-test-20130607.xls";
string dateStr = orginStr.Split('-')[2].Split('.')[0];
Console.WriteLine(dateStr);
Console.WriteLine(DateTime.ParseExact(dateStr, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy-M-d"));
}
相关资料:
http://www.jb51.net/article/37007.htm
http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx
/// <summary>
/// get the days of currDate minus lastDate;The result is negative is allowed
/// </summary>
/// <param name="lastDateStr"></param>
/// <param name="currDateStr"></param>
/// <returns></returns>
private int minusTwoDate(string lastDateStr,string currDateStr) {
DateTime lastDate = Convert.ToDateTime(lastDateStr);
DateTime currDate = Convert.ToDateTime(currDateStr);
return (currDate - lastDate).Days;
}
/// <summary>
/// judage whether cross the month;cross:true;
/// </summary>
/// <param name="lastDateStr">the last page recorded</param>
/// <param name="currDateStr"></param>
/// <returns></returns>
private bool whetherCrossMonth(string lastDateStr, string currDateStr)
{
DateTime lastDate = Convert.ToDateTime(lastDateStr);
DateTime currDate = Convert.ToDateTime(currDateStr);
if (currDate.Month == lastDate.Month)//the same month
{
return false;
}
else
{
return true;
}
}
/// <summary>
/// is last day:true;is not last day:false and return last date of month
/// </summary>
/// <param name="lastDateStr"></param>
/// <param name="lastDayOfMonth">the last day of month or null</param>
/// <returns>is last day:true;or false</returns>
private bool wetherIsLastDay(string lastDateStr,out string lastDayOfMonth)
{
DateTime lastPageDate = Convert.ToDateTime(lastDateStr);
//first day of month
string lastDay = string.Empty;
DateTime lastDateOfMonth = Convert.ToDateTime(lastPageDate.Year + "-" + lastPageDate.Month + "-" + DateTime.DaysInMonth(lastPageDate.Year, lastPageDate.Month));
if ((lastDateOfMonth-lastPageDate).Days>0)
{
lastDayOfMonth =lastDateOfMonth.ToShortDateString();;
return false;
}// less than The last day of each month
else
{
lastDayOfMonth = lastDay;
return true;
}//
}
sqlite方面:
//sql。如果businessDate字段不格式化为yyyy-MM-dd,则在max()对此字段取值会
//出现2013-1-9大于2013-1-10、2013-1-20的情况
sqlList.Add(String.Format("insert into test(businessName,businessDate,indb_datetime) values('{0}','{1}','{2}')", EventOrderKeyStr, fileDate.ToString("yyyy-MM-dd"), DateTime.Now.ToString()));
//入库环节
DBHelperSqlite dhSqlite = new DBHelperSqlite();
dhSqlite.ExecuteSqlTran(sqlList);
dbhelper:
private string dbName = "cmcc2.db";
private string connectionString = "Data Source=cmcc2.db;Pooling=true;FailIfMissing=false";
/// <summary>
/// if the db is not exists,create it and create the table
/// </summary>
public DBHelperSqlite()
{
string SQLCreateStr = "CREATE TABLE [cmcc_businesses_info] (businessName nvarchar(50),businessDate nvarchar(10),indb_datetime nvarchar(20))";
#region CASE2
FileInfo fi = new FileInfo(dbName);
if (fi.Exists == false)
{
logger.InfoFormat("db不存在");
//Console.WriteLine("db不存在");
SQLiteConnection.CreateFile(dbName);
logger.InfoFormat("db创建完成");
using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
conn.Open();
using (SQLiteCommand cmd = new SQLiteCommand(SQLCreateStr, conn))
{
if (cmd.ExecuteNonQuery() > 0)
{
logger.InfoFormat("表创建成功");
//Console.WriteLine("表创建成功");
}
}
}
}
#endregion
}//ctor
/// <summary>
/// 执行多条SQL语句,实现数据库事务。
/// </summary>
/// <param name="SQLStringList">多条SQL语句</param>
public void ExecuteSqlTran(IList<string> SQLStringList)
{
using (SQLiteConnection conn = new SQLiteConnection(connectionString))
{
conn.Open();
SQLiteCommand cmd = new SQLiteCommand();
cmd.Connection = conn;
SQLiteTransaction tran = conn.BeginTransaction();
cmd.Transaction = tran;
try
{
for (int n = 0; n < SQLStringList.Count; n++)
{
string strsql = SQLStringList[n].ToString();
if (strsql.Trim().Length > 1)
{
logger.Debug(strsql);
cmd.CommandText = strsql;
cmd.ExecuteNonQuery();
}
}
tran.Commit();
}
catch (System.Data.SQLite.SQLiteException ex)
{
logger.Error(ex);
tran.Rollback();
//throw new Exception(ex.Message);
}
}
}//trans
SubString函数使用时一个隐藏的“雷”:
/// <summary>
/// str.Substring(startIndex,length)如果length大于str的长度,就会报错
/// </summary>
public static void SubstringTest2()
{
string str = "4.333";
string[] r = str.Split('.');
if (r.Length == 2)
{
if (r[1].Length > 4)
{
r[1] = r[1].Substring(0, 4);
}
Console.WriteLine(r[0] + "." + r[1]);
}
}