Я пробовал несколько разных способов обновить столбец после проверки пользователя и пароля в таблице, хотя мне не повезло обновить столбец Last_login с или без UserId (это мой первичный ключ), если я не буду изменять имя пользователя в качестве первичного ключа, мне не удалось войти в систему, не включая команду Last_login sql, хотя я бы предпочел включить ее.C# логин с последним полем для регистрации обновлен
private void Connect()
{
SqlConnection connection = new SqlConnection();
//Imports the methods from Custom Security class
Custom_Security security = new Custom_Security();
string userid = "";
string time = "";
try
{
connection.ConnectionString = connectionPath;
connection.Open();
SqlCommand cmd = new SqlCommand("SELECT * FROM Logins WHERE Username = @Username (UserId, Password) VALUES (@UserID, @Password)");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@Username", txtuser.Text);
cmd.Parameters.AddWithValue("@Password", security.AES(security.Hashstring(txtpass.Text)));
cmd.Parameters.AddWithValue("@UserId", userid);
cmd.ExecuteNonQuery();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
DialogResult dlgResult;
dlgResult = MessageBox.Show(
"Welcome: " + txtuser.Text,
"Login sucessful",
MessageBoxButtons.OK,
MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1);
//Closes the data reader
dr.Close();
//Clears previous SQL command
cmd.Parameters.Clear();
DateTime timeNow = DateTime.UtcNow;
time = timeNow.ToShortTimeString();
//Inserts current time into field last login to update the column
cmd.CommandText = "INSERT INTO Logins (UserId, Last_login) VALUES (@UserId, @Last_login)";
cmd.Parameters.AddWithValue("@UserId", userid);
cmd.Parameters.AddWithValue("@Last_login",time);
cmd.ExecuteNonQuery();
this.Hide();
//loads the protected menu
Protected protectedform = new Protected(txtuser.Text);
protectedform.Show();
}
else
{
DialogResult dlgResult;
dlgResult = MessageBox.Show(
"Please try again",
"Login unsucessful",
MessageBoxButtons.OK,
MessageBoxIcon.Warning,
MessageBoxDefaultButton.Button1);
}
connection.Close();
connection.Dispose();
}
catch (SqlException sql)
{
MessageBox.Show(sql.Message);
}
}
Пример исполнения: http://imgur.com/88IziLt
Если кто-то может заметить или знает способ обойти это, пожалуйста, дайте мне знать :).
Большое спасибо, 10gez10
Спасибо дорогой сэр, может Не верю, что я пропустил этот lol – 10AlexD10