• c# winform项目用到的部分知识点总结


    项目用到的知识点总结,欢迎大家吐槽:

            /// <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]);
                }
    
            }
  • 相关阅读:
    C#几个经常犯错误汇总
    vs2010密钥
    SQL数据库基础知识用sql语句创建数据库
    空值显示表格线条(border)
    vs2008常用快捷方式
    汉字与十六进制之间的相互转换
    asp.net中常用信息验证总结
    GridView中全选和反选
    Nonreentrant C# timer
    GC.Collect
  • 原文地址:https://www.cnblogs.com/softidea/p/3256889.html
Copyright © 2020-2023  润新知