我正在使用包含 SessionID 和 EmployeeID 的对象。 基于此,我应该比较数据库表是否包含该会话的该员工。
如果表包含记录而我的对象 ,则不会发生任何事情。
如果表格包含记录而我的对象不,则应将其从表格中删除。
如果表格不包含记录且我的对象 ,则应将其添加到表格中。
似乎是一份快速的工作,但我有点挣扎。
编辑:
显然,该表格中包含 SessionID 和 EmployeeID 列作为我的对象的属性。
以下是实际代码:
foreach (Employee _emp in MyObj.Employees)
{
Command.Parameters.Add(":sessionid", MyObj.SessionID);
Command.Parameters.Add(":employeeid", _emp.EmployeeID);
Command.CommandText = getEmployeeID;
int employeeID;
Int32.TryParse(Convert.ToString(Command.ExecuteScalar()), out employeeID);
// If the employee is not in the db, add it
if (employeeID == 0)
{
Command.CommandText = insertEmployee;
[[Various Parameters]]
Command.ExecuteNonQuery();
Command.Parameters.Clear();
}
// if the employee is in the db but not in the current list, remove it from the db
else if (employeeID != Convert.ToInt32(_emp.EmployeeID))
{
Command.CommandText = deleteEmployee;
Command.ExecuteNonQuery();
Command.Parameters.Clear();
}
}
更新
好的,现在我可以检查数据库中是否存在Employee,并根据该插入记录是否存在。
问题是,代码永远不会进入 else if 条件,因为MyObj.Employees不再包含我想要从数据库中删除的记录,所以
employeeID != Convert.ToInt32(_emp.EmployeeID)
总是会导致false,因为MyObj.Employees中的唯一对象是我检查数据库中是否存在的对象。
答案 0 :(得分:0)
我最终使用了这段代码:
1234 ABC 100.0.0.0
4567 DEF 200.0.0.0 .....