0

我有这个更新:

sql = "UPDATE table SET prioridade = @prioridade, situacao = @sit , responsavel = @resp , previsao_termino = @previsao, chamado_designado = @designado WHERE id = @id";

MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = sql;
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new MySqlParameter("@prioridade", MySqlDbType.Int32)).Value = ch.Prioridade_ID;
cmd.Parameters.Add(new MySqlParameter("@sit", MySqlDbType.Int32)).Value = ch.Situacao_ID;
cmd.Parameters.Add(new MySqlParameter("@resp", MySqlDbType.Int32)).Value = ch.Responsavel_ID;
cmd.Parameters.Add(new MySqlParameter("@previsao", MySqlDbType.Date)).Value = ch.Previsao_Termino;
cmd.Parameters.Add(new MySqlParameter("@designado", MySqlDbType.Int32)).Value = ch.Chamado_Designado;
cmd.Parameters.Add(new MySqlParameter("@id", MySqlDbType.Int32)).Value = ch.ID;
_dal.Executar(cmd); 

的值ch.Previsao_Termino等于31/05/2013字段previsao_termino是 a date type。当它使update我抛出一个错误时,它会说:

Wrong Value for the field previsao_termino 0031-05-2013.

那是00从哪里来的?也许是连接器?我将连接器更新到了新版本,我也更新了我的连接器VisualStudio 2010并且VisualStudio 2012我改变了它,我遇到了很多问题

4

1 回答 1

0

@EdGibbs 提供的答案

使用MySqlCommand.Parameters作为其值传递的变量时,MUST请与设置参数的类型相同。例如

MySqlCommand.Parameter.Add(new MySqlParameter("@ParamName", MySqlDataType.DateTime)).value = dtValue  

变量dtvalue必须是日期时间类型,如果你像我一样使用string,那么你应该使用以下转换。

DateTime.ParseExact(ch.Previsao_Termino, 'dd/MM/yyyy', null)
于 2013-06-03T12:38:07.260 回答