c# - 如何使用键连接将值插入 SQL 字段

标签 c# mysql sql ssh console-application

我有一个名为Devices
的表 Devices 有一个名为 Names 的关键字段。
还有字段; DeviceIPDoesBackupDeviceTypeLastBackup

Field LastBackup 目前不知道设备上次备份,我正在编写的应用程序将通过 SSH FTP 来查找该信息。

现在,我使用拆分和数组将 SSH 响应分解为设备名称和 lastbackup,将它们分别转换为变量。

现在,我需要将 LastBackup 插入 SQL 中的空字段,同时根据其 key Name 保持与每个设备的配对。

我不确定如何完成此操作,因为我读到您不能将 WHERE 子句与 INSERT 一起使用。

最佳答案

要插入或更新记录(如果不存在则插入,如果存在则更新),您需要这样的查询。

首先构建连接对象和命令对象,然后将命令文本设置为 SQL 插入操作,并使用以下子句:如果带有主键的记录存在(设备名称),则需要更新而不是插入。< br/> 最后添加命令所需的参数(@xxxx 字符串)并调用 ExecuteNonQuery

using(MySqlConnection cnn = new MySqlConnection(..put a connstring here...))
using(MySqlCommand cmd = cnn.CreateCommand())
{
    cnn.Open();
    cmd.CommandText = @"INSERT INTO devices 
                      (Names, DeviceIP, DoesBackup, DeviceType, LastBackup)
                      VALUES (@name, @ip, @backs, @type, @last)
                      ON DUPLICATE KEY UPDATE LastBackup=@last";
    cmd.Parameters.AddWithValue("@name", variableWithDeviceNameValue);
    cmd.Parameters.AddWithValue("@ip", variableWithIPValue);
    cmd.Parameters.AddWithValue("@backs", variableWithDoesBackupValue);
    cmd.Parameters.AddWithValue("@type", variableWithDeviceTypeValue);
    cmd.Parameters.AddWithValue("@last", variableWithLastBackupValue);
    cmd.ExecuteNonQuery();
}

关于c# - 如何使用键连接将值插入 SQL 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28285333/

相关文章:

c# - 如何将 SqlBulkCopy 与 DataTable 中的二进制数据 (byte[]) 一起使用?

mysql - 是否可以编写代码来删除第一个分区而不指定名称?

java - 如何为 ResponseEntity<> 返回 'Integer' 类型并在 api 页面上获取结果?

java - 使用 Hibernate 时如何打印带有参数值的查询字符串

Python "INSERT INTO"与 "INSERT INTO...ON DUPLICATE KEY UPDATE"

php - 我想对 5 个表进行求和,其中有一列名为 "UP"

c# - 当使用 C# 图表 API 绘制的第一个点位于 (0,0) 时,X 轴值自动递增

c# - EntityFramework 确定子集合是否包含项目而不获取整个集合

javascript - 从IE浏览器调用winform函数

PHP - 使用预先固定的标签保存 JSON