【问题标题】:How to insert values into SQL field with a key connection如何使用键连接将值插入 SQL 字段
【发布时间】:2015-04-01 20:20:06
【问题描述】:

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

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

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

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

我不知道如何做到这一点,因为我读过您不能将WHERE 子句与INSERT 一起使用。

【问题讨论】:

    标签: c# mysql sql ssh console-application


    【解决方案1】:

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

    首先构建连接对象和命令对象,然后将命令文本设置为 sql 插入操作,其中如果存在具有主键的记录(设备名称),则需要更新而不是插入。 最后添加命令所需的参数(@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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-10
      • 2016-05-20
      • 1970-01-01
      • 1970-01-01
      • 2011-04-26
      相关资源
      最近更新 更多