日期:2014-05-17  浏览次数:20495 次

求一个往数据库里面插入数据的小程序
求一个往数据库里面插入数据的小程序!如:将2012-2017年的每一天都插入到一张数据表中,主要字段有year(年)、month(月)、day(日)、date(日期)、week(星期几)、weeks(那一天是那年中的第几周)、isrestday(是否为周六、周日,如果是周六或者周日用0表示,不是周六周日用1表示)。

------解决方案--------------------
太太太太太复杂了。
好多好多数据哦。。。帮你顶吧。
------解决方案--------------------
一年365天(不计闰年的情况),共6年,也就是2000多条数据。
至于下面的算法都是很简单的,楼主可以自己尝试着做,哪里不会了再贴出来。
把数据填充成一条记录后,循环插入就可以了,记得带事务功能!
------解决方案--------------------
探讨
一年365天(不计闰年的情况),共6年,也就是2000多条数据。
至于下面的算法都是很简单的,楼主可以自己尝试着做,哪里不会了再贴出来。
把数据填充成一条记录后,循环插入就可以了,记得带事务功能!

------解决方案--------------------
探讨
一年365天(不计闰年的情况),共6年,也就是2000多条数据。
至于下面的算法都是很简单的,楼主可以自己尝试着做,哪里不会了再贴出来。
把数据填充成一条记录后,循环插入就可以了,记得带事务功能!

------解决方案--------------------
C# code

private void button1_Click(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("year");
            dt.Columns.Add("month");
            dt.Columns.Add("day");
            dt.Columns.Add("date");
            dt.Columns.Add("week");
            dt.Columns.Add("weeks");
            dt.Columns.Add("isrestday");

            DateTime beginTime = new DateTime(2012,01,01);
            DateTime endTime = new DateTime(2017, 01, 01);
            TimeSpan   days   =   endTime  -   beginTime;
            for (int i = 0; i < days.Days; i++)
            {
                DateTime date = beginTime.AddDays(i);
                DataRow dr = dt.NewRow();
                dr["year"] = date.Year;
                dr["month"] = date.Month;
                dr["day"] = date.Day;
                dr["date"] = date.Date;
                dr["week"] = date.DayOfWeek;
                dr["weeks"] = GetWeekIndex(date.Date);
                if (date.DayOfWeek==DayOfWeek.Saturday||date.DayOfWeek==DayOfWeek.Sunday)
                {
                    dr["isrestday"] = "0";
                }
                else
                {
                    dr["isrestday"] = "1";
                }
                dt.Rows.Add(dr);
            }

            this.dataGridView1.DataSource = dt;
        }

        /// <summary>
        /// 获取当前日期是一年中的第几周,如果12月31号与下一年的1月1好在同一个星期则算下一年的第一周
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public static int GetWeekIndex(DateTime dt)
        {
            //确定此时间在一年中的位置
            int dayOfYear = dt.DayOfYear;

            //当年第一天
            DateTime tempDate = new DateTime(dt.Year, 1, 1);

            //确定当年第一天
            int tempDayOfWeek = (int)tempDate.DayOfWeek;
            tempDayOfWeek = tempDayOfWeek == 0 ? 7 : tempDayOfWeek;
            //确定星期几
            int index = (int)dt.DayOfWeek;

            index = index == 0 ? 7 : index;

            //当前周的范围
            DateTime retStartDay = dt.AddDays(-(index - 1));
            DateTime retEndDay = dt.AddDays(7 - index);

            //确定当前是第几周
            int weekIndex = (int)Math.Ceiling(((double)dayOfYear + tempDayOfWeek - 1) / 7);

            if (retStartDay.Year < retEndDay.Year)
            {
                weekIndex = 1;
            }

            return weekIndex;
        }

------解决方案--------------------
SQL code



declare  @start datetime
declare  @end datetime
set  @start = '2012-01-01' 
set @end = '2014-01-01'

while ( @start < @end  )
begin
    
    

    
    print  str(year(@start )) + str( month( @start) ) +  str( day( @start ) )  +'   ' +
        CONVERT(varchar (10), @s