c# - C# MySQL 更新查询工作但并非总是如此
问题描述
这个问题很奇怪,我不确定到底是什么原因造成的。下面的示例代码中显示的更新查询在 60% 的时间内有效,但有时它根本不起作用。没有异常或错误。我尝试调试,当查询不起作用时,它只返回 0 表示没有更新任何行。但是,该行存在,如果我在 phpmyadmin 上尝试或再次运行此代码,它会以某种方式工作。我还尝试使用简单的 UPDATE 查询而不是 INSERT ON DUPLICATE KEY UPDATE 但仍然得到相同的行为。
如果有人可以建议我更好的方法,将不胜感激。
MySqlConnection remoteConnection;
string connectionString = "SERVER=" + server + ";" + "DATABASE=" + db + ";" + "UID=" + username + ";" + "PASSWORD=" + pass + ";";
remoteConnection = new MySqlConnection(connectionString);
remoteConnection.Open();
string query = $"INSERT INTO WebServers (Ip,Status,Error,Visible) VALUES('{serverStatus.Ip}', '{serverStatus.Status}', '{serverStatus.Error}','0') ON DUPLICATE KEY UPDATE Status='{serverStatus.Status}', Error='{serverStatus.Error}', Visible='0'";
MySqlCommand mySqlCommand = new MySqlCommand(query, remoteConnection);
int i = mySqlCommand.ExecuteNonQuery();
remoteConnection.Close();
解决方案
尝试 mySqlCommand.Connection.Open(); int i = mySqlCommand.ExecuteNonQuery();
推荐阅读
- css - Module.css 在 React 中不起作用。因此 css 也无法继续。请回复
- python - 拆分未格式化的日期/时间字符串并分配给各个变量以连接
- terraform - 如何使用 terraform 使用 for_each 创建多个不同名称、不同 CPU 和内存要求的 vsphere VM
- oauth-2.0 - Microsoft 作为个人帐户的 OAuth2 提供者不颁发 JWT 访问令牌
- python - django jsonresponse 返回空值
- flutter - 使用http包从API获取大数据非常慢,我怎样才能更快地获取数据?
- reactjs - Firebase 存储的获取速度极慢
- java - koin 如何与 android 中的属性一起使用?
- amazon-web-services - 将 Step Function 的输入传递给 Glue JOb
- c# - 如何正确使用 C# 自动化测试 AreEqual?