1.流水号:也许你得考虑并发……
http://blog.csdn.net/ijingjing/article/details/61543652.http://blog.csdn.net/mygis2005/article/details/7404807

解决方案 »

  1.   

    1. 你使用的数据库是否为SQL Server?如果是,那么设置ID列为标识(有一个标识规划,设置种子值为1即可),然后在Insert语句中不需要去处理ID列,即insert into Contact(name,phone,email,subject,datetime) 
    values('XXXX','13800138000','[email protected]','请教问题','2014-9-9 12:10:10')2. 仍需要确认是否为SQL Server数据库,如果是,则语句代码更改为insert into Contact(name,phone,email,subject,datetime) 
    values('XXXX','13800138000','[email protected]','请教问题',getdate()),如果否,则设置时间为DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
      

  2.   

    一般流水号是由一定规则的,这种规则一般为:用户看不出所以然,但是内部人员看到流水号可以获得一些信息。这需要编写一个算法,这个算法可以写在底层,当插入数据时,先得到一个流水号,再向数据库中插入数据,你要将数据库id这个字段设置为主键,因为要具有唯一性。至于时间,很简单,sql server自带函数GetDate()就可以获取当前时间。/// <summary>
    /// 生成流水号
    /// </summary>
    /// <returns></returns>
    public string CreateOrderNo()
            {
                DateTime dt = System.DateTime.Now;
                string orderno = dt.Year + dt.Month + dt.Day + dt.Hour + dt.Minute + dt.Second + dt.Millisecond + GetRndNum(6);
                return orderno;
            }
      

  3.   

    insert into Contact(id,name,phone,email,subject,datetime) 
     values(1,'XXXX','13800138000','[email protected]','请教问题','2014-9-9 12:10:10') 如果是Sql Server 
    datetime 改为 getDate() 直接以如数据库的时间,绝对不会有太大的误差id如果数据库没有设置标示值得话,就在插入前查询一遍数据库,获取最大的id值,然后加1(这里可能会并发),