我有这个更新:
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
是date type
。什么时候会update
它会让我错误地说:
Wrong Value for the field previsao_termino 0031-05-2013.
00
来自哪里?也许连接器?我将连接器更新为新版本,同时我将VisualStudio 2010
更新为VisualStudio 2012
,然后我改变了,我有很多问题u.u。
答案 0 :(得分:0)
@EdGibbs提供的答案
使用MySqlCommand.Parameters
作为其值传递的变量时,MUST
与您设置参数的类型相同。例如
MySqlCommand.Parameter.Add(new MySqlParameter("@ParamName", MySqlDataType.DateTime)).value = dtValue
变量dtvalue
必须是DATETIME TYPE,如果像我一样使用string
,那么你应该使用以下转换。
DateTime.ParseExact(ch.Previsao_Termino, 'dd/MM/yyyy', null)