SQL2005中有个时间列,默认值我设置的是getdate(),可以正常显示时分秒,但是我想在外面可以update修改时间,但是一直弹出修改失败!源代码如下:string pid=dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
                string pname = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
                string pprice = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
                string pnote = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
                DateTime ptime = DateTime.Parse(dataGridView1.SelectedRows[0].Cells[5].Value.ToString());
                mc.GetCon();
                string sql = "UPDATE  user_product SET  product_name = '"+pname+"', product_price = "+pprice+", product_note = '"+pnote+"', ptype_time = "+ptime+" WHERE   (product_id = "+pid+")";
                int n = mc.execNoQuery(sql);
                if (n > 0)
                {
                    MessageBox.Show("修改成功!");
                }
                else
                {
                    MessageBox.Show("修改失败!");
                }我觉得是修改时间问题上出了差错,而且我测试了一下,当我用UPDATE  user_product
SET         ptype_time = 2011-01-04
WHERE   (product_id = 1) 
可以正常修改,但是修改过后在SQL2005的数据却是1905/6/30 0:00:00
请教CSDN上各位高手帮小弟解决下

解决方案 »

  1.   

        DateTime ptime = DateTime.Parse(dataGridView1.SelectedRows[0].Cells[5].Value.ToString());改成
        string ptime = dataGridView1.SelectedRows[0].Cells[5].Value.ToString();试下..
    不行的话 直接数据库中的 ptype_time 改成nvarchar(50)  哈哈。断点跑你的SQL语句 复制到数据库里执行。。
      

  2.   

    问题解决了,把SQL的语句改成:UPDATE  user_product
    SET         ptype_time = CONVERT(DATETIME, '2011-01-01 00:00:00', 102)
    WHERE   (product_id = 1)就可以修改成功了。不过还是谢谢1楼的大哥