First of all, please understand that we are translating Japanese.
The following code does not perform UPDATE.
The updated line is returned as 0.
Please tell me the problem area and help me.
public void Save(ProcessEntity process)
{
string insert = @"
INSERT INTO Process
(ProcessId,CreateDate,SerialNumber,StaffName,Terminal,CompleteDate)
VALUES
(?,?,?,?,?,?)
";
string update = @"
UPDATE Process
SET CreateDate = ?,
SerialNumber = ?,
StaffName = ?,
Terminal = ?,
CompleteDate = ?
WHERE ProcessId = ?
AND CreateDate =?
AND SerialNumber = ?
";
var args = new List<OdbcParameter>
{
new OdbcParameter("@ProcessId",process.ProcessId.Value),
new OdbcParameter("@CreateDate",process.CreateDate.Value),
new OdbcParameter("@SerialNumber",process.SerialNumber.Str),
new OdbcParameter("@StaffName",process.StaffName.Str),
new OdbcParameter("@Terminal",process.Terminal),
new OdbcParameter("@CompleteDate",process.CompleteDate.Value),
};
OdbcHelper.ExecuteProcess(insert, update, args.ToArray());
}
internal static void ExecuteProcess(string insert, string update, OdbcParameter[] paramaters)
{
using (var connection = new OdbcConnection(ProcessConnection))
using (var command = new OdbcCommand(update, connection))
{
connection.Open();
if (paramaters != null)
{
command.Parameters.AddRange(paramaters);
}
if (command.ExecuteNonQuery() < 1)
{
command.CommandText = insert;
command.ExecuteNonQuery();
}
}
}