我有一个名为Devices
的表
Devices
有一个名为 Names
的关键字段。
还有字段; DeviceIP
、DoesBackup
、DeviceType
和 LastBackup
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/