在使用MySQL数据库时,我做了一些令我惊讶的疑问!
假设一个ID为int
且名称为varchar
的小表,当我根据ID进行更新查询时(使用C#):
MySqlCommand comm = new MySqlCommand("UPDATE database.table SET Name=@name WHERE id=@id", sqlconn);
comm.Parameters.AddWithValue("@name", textbox1.text);
comm.Parameters.AddWithValue("@id", textbox2.text);
comm.ExecuteNonQuery();
sqlconn.Close();
这确实是完全正确的,所以如果ID作为int
或string
传递到数据库,这不是问题,有什么事可以有人向我解释一下吗?
答案 0 :(得分:2)
MySQL是"做我的意思"一种数据库,将根据需要自动转换类型。
大多数情况下这是一件好事,这意味着你不必大肆渲染,但有时它可能导致模糊和奇怪的错误,当它在你不知道的情况下做事情,比如静默地截断数据。