Привет У меня возникла проблема при попытке обновить мое представление таблицы данных, чтобы оно отображало только данные пользователя, вошедшего в систему.
У меня есть две таблицы: одна называется записями, а другая - пользователями. Таблица users содержит данные пользователя, включая имя пользователя и идентификатор пользователя. таблица записей содержит идентификатор пользователя в качестве внешнего ключа и данные о показаниях bmi.
У меня есть страница входа в систему, которая при входе отображает сообщение, которое приветствуется (имя пользователя)
Это код, который я написал для обновления таблицы данных
SqlConnection con = new SqlConnection(@(removed to simplify));
con.Open();
var sda = new SqlDataAdapter("SELECT * FROM Records WHERE UserID=@UserID", con);
sda.SelectCommand.Parameters.AddWithValue("@UserID", currentUsernameLabel.Text);
DataSet DATA = new dataGridView.DataSource =
con.Close();
Как мне узнать, что такое userID (на основе имени пользователя, хранящегося в currentUsernameLabel.Text), чтобы я мог добавить его в качестве параметра?
EDIT:
это мои таблицы:
Таблица рекордов

Таблица пользователей

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, чтобы помочь
EDIT:
Я предложил следующее решение:
//Find ID of user who is logged in
string currentUserID;
SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\n0740572\Projects\newest\CW\CW\Database1.mdf;Integrated Security=True");
SqlCommand command = new SqlCommand("select UserID from Users where Username = '"+currenUsernameLabel.Text+"' ", conn);
try
{
conn.Open();
SqlDataReader reader = command.ExecuteReader();
while(reader.Read())
{
currentUserID = reader["UserID"].ToString();
command.Parameters.AddWithValue("@CurrentUserID", currentUserID);
command.ExecuteNonQuery();
}
reader.Close();
} catch (SqlException ex)
{
MessageBox.Show(ex.Message);
} finally
{
conn.Close();
}
//update datagridview
this.recordsTableAdapter.ChartAll(this.recordsDataSet.Records);
}
Запрос ChartAll выглядит следующим образом:
SELECT Height, Weight, BMI, Date FROM dbo.Records
WHERE UserID = @CurrentUserID
Сообщение об ошибке:
Сообщение об ошибке
Имеет ли это какое-то отношение к тому, что параметр должен быть целым, а не строкой?