System.DateTime.Now 返回的是DateTime 类型,你的字段是不是DateTime型>?

解决方案 »

  1.   

    是DateTime型的呀,可是存到数据库里的只有日期
      

  2.   

    DataTable dt=new DataTable("myTable");
    dt.Columns.Add("theDateTime",System.Type.GetType("System.DateTime"));
    DataRow dr=dt.NewRow();
    dr[0]=System.DateTime.Now;
    dt.Rows.Add(dr);
      

  3.   

    all code:
    DataTable dt=new DataTable("myTable");
    dt.Columns.Add("theDateTime",System.Type.GetType("System.DateTime"));
    DataRow dr=dt.NewRow();
    dr[0]=System.DateTime.Now;
    dt.Rows.Add(dr);OleDbDataAdapter adapter=new OleDbDataAdapter("select * from test",oleDbConnection1);//oleDbConnection is created to connect to my Access file
    OleDbCommandBuilder builder=new OleDbCommandBuilder(adapter);
    adapter.Update(dt);
      

  4.   

    the record inserted to the database has the column of 2004-7-4 23:56:01
      

  5.   

    DataRow dr=dataSet31.Tables["userlogin"].Rows[0];
    dr["logfalsetime"]=System.DateTime.Now.ToLongTimeString();
    // try
    // {
    oleDbDataAdapter3.Update(dataSet31);看看我的代码片断
    数据库里是常规日期字段。
      

  6.   

    What is the type of the column "logfalsetime"?
      

  7.   

    SCCESS数据库的常规日期型,2000版本
      

  8.   

    现在的问题好像出在向数据更新的过程中,因为更改后的dataset的对应值我用textbox显示出来是完整的常规日期也就是带日期和时间的。但是写入数据库后出来的却是只有日期的。
      

  9.   

    为这个问题我更改了方法,不再使用dataset,但是使用下面的方法还是只能写入日期: oleDbCommand3.Parameters["user_lastlogin"].Value=System.DateTime.Now;
    oleDbConnection1.Open();
    oleDbCommand3.ExecuteNonQuery();
    oleDbConnection1.Close();数据库字段属性是常规日期。
      

  10.   

    System.DateTime.Now.ToString("yyyy-M-dd H:mm:ss")
      

  11.   

    咦,我以前是不要时间只要日期,就用了 wjcking的方法。不过我用的字段是设置成字符型的。
      

  12.   

    不用手工去写,直接在SQLServer中设置该字段的默认值为getdate()
      

  13.   

    楼上的师傅:首先不是SQL数据库,第二,我就是要经常取出写入这个时间。
    是不是常规日期中间的空格引起的?
      

  14.   

    http://blog.csdn.net/casual12/archive/2004/07/06/35382.aspx
      

  15.   

    楼主,我都是和你一样的阿,那我怎么还是带时间的呢?而且只要是一个日期型的字段,不进行处理的话,一般存到数据库里的都会带有时间的阿!我想肯定是你在写入数据库之前已经对这个数据操作过了!要不就是2000Access的问题!:)
      

  16.   

    oleDbCommand3.Parameters["user_lastlogin"].Value=System.DateTime.Now;
    我就是用这个语句给参数附值的呀!命令语句:
    // oleDbCommand3
    // 
    this.oleDbCommand3.CommandText = "UPDATE userlogin SET user_lastip = ?, user_lastlogin = ? WHERE (user_name = ?)";
    this.oleDbCommand3.Connection = this.oleDbConnection1;
    this.oleDbCommand3.Parameters.Add(new System.Data.OleDb.OleDbParameter("user_lastip", System.Data.OleDb.OleDbType.VarWChar, 50, "user_lastip"));
    this.oleDbCommand3.Parameters.Add(new System.Data.OleDb.OleDbParameter("user_lastlogin", System.Data.OleDb.OleDbType.DBDate, 0, "user_lastlogin"));
    this.oleDbCommand3.Parameters.Add(new System.Data.OleDb.OleDbParameter("user_name", System.Data.OleDb.OleDbType.VarWChar, 20, System.Data.ParameterDirection.Input, false, ((System.Byte)(0)), ((System.Byte)(0)), "user_name", System.Data.DataRowVersion.Original, null));
      

  17.   

    Dim dr As DataRow = ds.Tables(0).Rows(0)
       dr("timer") = Now.ToLongTimeString
    Dim builder As New OleDbCommandBuilder(adpt)  '你是不是把这句漏了,漏了就更新不了
      adpt.Update(ds)
      

  18.   

    跟你得数据库有关吧,SQLServer中就算是将ShortDateTime格式的DateTime写入数据库时也会自动变成LongDateTime型的datetime
      

  19.   

    先将DateTime型转换为String
    插入时,再转换和DateTime
      

  20.   

    跟数据库无关的,我试过了,access能变为时间日期型的
      

  21.   

    回答Megres:
    我使用的C#+asp.net
    我不是更新不了,而是只写入了日期,却没有时间。应该是日期+时间的回答liujuanwh:
    我的数据库是ACCESS,2003的软件,但是保存的是2000格式。这个字段属性就是常规时间型,也就是说包含日期和时间。例如2004-7-6 16:40:00
      

  22.   

    已经自己发现解决了
    System.Data.OleDb.OleDbParameter("user_lastlogin", System.Data.OleDb.OleDbType.DBDate, 0, "user_lastlogin"));
    里面的DBDate不对。不过还是要散分。