Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MySql在更新时增加价值_C#_Mysql - Fatal编程技术网

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
之后,问题开始在美国各地出现