首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

SqlDateTime 溢出解决方案

2012-01-02 
SqlDateTime 溢出publicvoidupdate(){stringupdatestrupdatesupplysetfactoryname@factoryname,sort@s

SqlDateTime 溢出
public   void     update()
        {
                string   updatestr   =   "update   supply   set   factoryname=@factoryname,sort=@sort,title=@title,category=@category,area=@area,standard=@standard,price=@price,usefullife=@usefullife,releasetime=@releasetime     "+
                      "where   recordid=@recordid "   ;

                SqlCommand   mycomm   =   new   SqlCommand(updatestr,myconn);
                mycomm.Parameters.Add( "@factoryname ",SqlDbType.VarChar,50);
                mycomm.Parameters.Add( "@sort ",SqlDbType.VarChar,10);
                mycomm.Parameters.Add( "@title ",SqlDbType.VarChar,100);
                mycomm.Parameters.Add( "@category ",SqlDbType.VarChar,10);
                mycomm.Parameters.Add( "@area ",SqlDbType.VarChar,50);
                mycomm.Parameters.Add( "@standard ",SqlDbType.VarChar,50);
                mycomm.Parameters.Add( "@price ",SqlDbType.VarChar,50);
                mycomm.Parameters.Add( "@usefullife ",SqlDbType.DateTime);
                mycomm.Parameters.Add( "@releasetime ",SqlDbType.DateTime);
                mycomm.Parameters.Add( "@recordid ",SqlDbType.Int);

                mycomm.Parameters[ "@factoryname "].Value   =   factorynamelistbox.SelectedItem.Text;
                mycomm.Parameters[ "@sort "].Value   =   sortddl.SelectedItem.Text;
                mycomm.Parameters[ "@title "].Value   =   titlebox.Text.Trim().ToString();
                mycomm.Parameters[ "@category "].Value   =   categorylistbox.SelectedItem.Text;
                mycomm.Parameters[ "@area "].Value   =   areabox.Text.Trim().ToString();
                mycomm.Parameters[ "@standard "].Value   =   standardbox.Text.Trim().ToString();
                mycomm.Parameters[ "@price "].Value   =   pricebox.Text;
                mycomm.Parameters[ "@usefullife "].Value   =   Calendar1.SelectedDate.ToString( "yyyy/MM/dd ",   System.Globalization.DateTimeFormatInfo.InvariantInfo);  
                mycomm.Parameters[ "@releasetime "].Value   =   DateTime.Now.ToString( "yyyy/MM/dd ",   System.Globalization.DateTimeFormatInfo.InvariantInfo);
                mycomm.Parameters[ "@recordid "].Value   =Int32.Parse(   Request.QueryString[ "recordid "]);

                myconn.Open();


                //try
                //{
                mycomm.ExecuteNonQuery();
                msgbox.Text   =   "更新成功 ";
                msgbox.Visible   =   true;
                //}
                //catch   (Exception   excp)
                //{
                //         System.Diagnostics.Debug.WriteLine(excp.Message);
                //         msgbox.Text   =   "更新失败 ";
                //         msgbox.Visible   =   true;
                //}
                //myconn.Close();
        }
}

  更新出错   ,   就是那个datetime类型,我有个插入语句都没问题,   也是类似一样做的,

SqlDateTime   溢出。必须介于   1/1/1753   12:00:00   AM   和   12/31/9999   11:59:59   PM   之间。
错在哪啊????

[解决办法]
估计是日期格式设置造成的,其实对参数赋值没必要去指定格式,直接用默认不就行了?
再者,如果你这个字段可以设数据库端的默认值getdate(),根本就不用在这里麻烦了
[解决办法]
不是让releasetime取现在时间么 何不update .....releasetime=getdate().....

热点排行