C# MySql在更新时增加价值
我有以下更新:C# MySql在更新时增加价值,c#,mysql,C#,Mysql,我有以下更新: 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.Command
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
为日期类型。当它进行更新时
会抛出一个错误,告诉我:
Wrong Value for the field previsao_termino 0031-05-2013.
那00
是从哪里来的?也许是接头?我将我的连接器更新为一个新版本,也将我的VisualStudio 2010
更新为VisualStudio 2012
,自从我更改了它之后,我在u.u.遇到了很多问题。由@EdGibbs提供的答案
使用MySqlCommand.Parameters
作为其值传递的变量时,必须与设置参数的类型相同。e、 g
MySqlCommand.Parameter.Add(new MySqlParameter("@ParamName", MySqlDataType.DateTime)).value = dtValue
变量dtvalue
必须是DATETIME类型,如果您像我一样使用string
,则应使用以下转换
DateTime.ParseExact(ch.Previsao_Termino, 'dd/MM/yyyy', null)
ch.Previsao_Termino
的数据类型是什么?ch.Previsao_Termino
的数据类型是什么?DateTime还是字符串?@Marco这是一个字符串,所以这里是错误!!!如果要将字符串写入数据库中的日期,应使用yyyy-MM-dd格式。当然,如果你使用日期时间,这是你能做的最好的@NikitaSilverstruk但它总是这样工作。。。但是自从我更换了连接器
和vs
之后,问题开始在美国各地出现