抛开盐和哈希辩论。并且请仅在您知道答案的情况下回复。
我正在尝试创建一种方法,在该方法中,用户输入其凭据,并在登录和注销时自动记录日期和时间。
我有两个问题
问题 1 - 我创建了一个简单的登录和注销方法。当我包含日期和时间代码时,我注意到这些是为所有用户记录和存储的。我目前有两个用户。因此,如果一个用户登录的日期和时间被记录下来并为另一个用户盖章。
问题 2 - 第二个问题是主题标题说,当 Update 命令参数与 Select 使用相同的方法时,我收到一条错误消息。
如果有人可以帮助我,我将不胜感激这两个问题。希望这只是一个小问题?如果省略日期和时间,那么如果有人可以帮助我进行多登录功能,我将不胜感激。
访问 2003 ~ 两个表。表 1 - 命名 LoginTable 表 2 - 命名 LoginLogTable
登录表
字段名数据类型
UserName Text
Password Text
LoginLogTable
FieldName DataType
UserNameID Text
UserName Text
LoggedIn Date/Time
LoggedInTime Date/Time
private void btnLogin_Click(object sender, EventArgs e)
{
using (var command = myCon.CreateCommand())
{
command.CommandText = "select UserName, Password from LoginTable where WHERE STRCOMP(UserName, @UserName,0) = 0 AND STRCOMP(Password, @Password,0)=0";
command.Parameters.AddWithValue("UserName", (txtUserName.Text));
command.Parameters.AddWithValue("Password", (txtPassword.Text));
myCon.Open();
var reader = command.ExecuteReader();
{
if (reader.HasRows)
{
MessageBox.Show("Login Successful");
Form2 frm = new Form2();
frm.Show();
while (reader.Read())
{
txtUserName.Text = reader["UserName"].ToString();
txtPassword.Text = reader["Password"].ToString();
}
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = myCon;
cmd.CommandText = "UPDATE [LoginLogTable] SET [LoggedInDate] = ?, [LoggedInTime] = ?";
cmd.Parameters.AddWithValue("@LoggedInDate", DateTime.Now.ToShortDateString());
cmd.Parameters.AddWithValue("@LoggedInTime", DateTime.Now.ToString("HH:mm"));
cmd.ExecuteNonQuery();
myCon.Close();
}
else MessageBox.Show("Login Falied");
}
}
myCon.Close();
myCon.Close();
}