C# 通过C插入Access DB表#

C# 通过C插入Access DB表#,c#,database,ms-access,C#,Database,Ms Access,谁能告诉我我做错了什么它向异常中插入无效的内容。 internal static bool CheckInKey(string keyID, int cabinetID, int drawerNumber, string row, int column) { cmd.Parameters.Clear(); cmd.CommandText = "Insert into CheckInCheckOut(KeyID,CabinetID,DrawerNumber,Row,Column,C

谁能告诉我我做错了什么它向异常中插入无效的内容。

internal static bool CheckInKey(string keyID, int cabinetID, int drawerNumber, string row, int column)
{
    cmd.Parameters.Clear();
    cmd.CommandText = "Insert into CheckInCheckOut(KeyID,CabinetID,DrawerNumber,Row,Column,CheckInTime) values(?,?,?,?,?,?)";
    cmd.Parameters.AddWithValue("?", keyID);
    cmd.Parameters.AddWithValue("?", cabinetID);
    cmd.Parameters.AddWithValue("?", drawerNumber);
    cmd.Parameters.AddWithValue("?", row);
    cmd.Parameters.AddWithValue("?", column);
    cmd.Parameters.AddWithValue("?", DateTime.Today.ToString());

    conn.Open();
    int rowsAffected = cmd.ExecuteNonQuery();
    conn.Close();

    if (rowsAffected == 1)
        return true;
    else
        return false;
}
这是我的访问表快照:
为保留列。
要从C代码中使用它,需要将其封装在方括号中

cmd.CommandText = @"Insert into CheckInCheckOut
                         (KeyID,CabinetID,DrawerNumber,Row,[Column],CheckInTime) 
                         values(?,?,?,?,?,?)";

列是保留的。
要从C代码中使用它,需要将其封装在方括号中

cmd.CommandText = @"Insert into CheckInCheckOut
                         (KeyID,CabinetID,DrawerNumber,Row,[Column],CheckInTime) 
                         values(?,?,?,?,?,?)";

CheckInTime是一个日期时间,为什么要传递一个字符串?我认为即使在使用时也是如此?占位符语法您希望在添加参数时为参数指定实际名称。CheckOutTime是否可以为空?谢谢大家的帮助。我把它修好了。Column是一个保留关键字,这就是问题所在。CheckInTime是一个DateTime,为什么要传递一个字符串?我认为即使使用?占位符语法您希望在添加参数时为参数指定实际名称。CheckOutTime是否可以为空?谢谢大家的帮助。我把它修好了。列是一个保留关键字,这就是问题所在。