我在这里面临一个非常奇怪的问题。
我的 DAL 是使用编写的OdbcConnection
对象并且工作完美。
然而,我必须尊重一些要求,因此必须移动系统来使用MySqlConnection
你会说,不应该有任何问题。
但是,现在有一点误解:当我执行UPDATE
命令,无需输入任何新的详细信息(假设我将用户“test”的用户名更改为...“test”),command.ExecuteNonQuery()
无论如何都会返回 1。
与之前的系统 &OdbcCommand
对象,如果没有字段更改则返回 0。
这只是两个系统之间的基本区别还是我在这里错过了什么?
即使是非常基本的代码,也只是一些代码:
private readonly string _updateUserCommand =
"UPDATE user u " +
"JOIN city c ON c.Name=?City " +
"SET `City Id`=c.Id, u.Username=?Username WHERE u.Id=?Id";
// (...)
MySqlCommand command = null;
try
{
connection.Open();
//First step: storing the user in table user
//Creating the actual command:
command = new MySqlCommand(_updateUserCommand, connection);
command.Parameters.AddWithValue("?City", u.City);
command.Parameters.AddWithValue("?Username", u.Name);
command.Parameters.AddWithValue("?Id", u.Id);
int i = command.ExecuteNonQuery();
if (i != 0) return true;
else return false;
}
你的解释没有多大意义。如果您提供有效的 ID 并更新用户名,即使您更新为相同的名称,您也可以预期 1 行将受到影响。即有一行包含 userId
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)