将List <t>与数据库表

时间:2015-11-03 14:13:28

标签: c# mysql plsql

我正在使用包含 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中的唯一对象是我检查数据库中是否存在的对象。

1 个答案:

答案 0 :(得分:0)

我最终使用了这段代码:

1234 ABC 100.0.0.0 
4567 DEF 200.0.0.0 .....