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上各位高手帮小弟解决下
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上各位高手帮小弟解决下
string ptime = dataGridView1.SelectedRows[0].Cells[5].Value.ToString();试下..
不行的话 直接数据库中的 ptype_time 改成nvarchar(50) 哈哈。断点跑你的SQL语句 复制到数据库里执行。。
SET ptype_time = CONVERT(DATETIME, '2011-01-01 00:00:00', 102)
WHERE (product_id = 1)就可以修改成功了。不过还是谢谢1楼的大哥