我有这种情况,我使用c#更新mySql db表。 更新的字段是varchar(10)。 问题是如果传递的值超过10个字符,则写入的值将被截断,但没有例外。 这是正常的吗?我错过了什么吗?
下面的代码显示了这种情况
string query = @"update params set paramvalue=@val where paramid='aParam';
select paramvalue from params where paramid='aParam';";
MySqlConnection connection =
new MySqlConnection("server=localhost;user=root;database=world;port=3306;password=******;");
connection.Open();
MySqlCommand command = new MySqlCommand(query, connection);
string myVal = "123456789012345";
command.Parameters.AddWithValue("@val", myVal);
string theirVal = command.ExecuteScalar().ToString();
Console.WriteLine(theirVal); // this outputs "1234567890"
更新 完全相同的命令会在workbech客户端中返回执行警告!
受影响的1行,1个警告:1265第1行的'ParamValue'列截断数据匹配的行数:1已更改:1警告:1 0.000秒
我可以在代码中的mySql客户端中使用这些警告吗? 有什么建议吗?我找不到路......