У меня есть две таблицы в моей базе данных: студенты и учетные записи. В моем приложении я пытаюсь читать данные из нескольких таблиц с помощью метода reader.GetDecimal() и не удается получить данные из второй таблицы.Как использовать reader.GetDecimal() для столбца в отдельной таблице?
Возможно ли это с помощью метода GetDecimal? Или мне нужно добавить к одному из запросов, чтобы получить то, что мне нужно, из таблицы Accounts?
Таблицы базы данных:
Accounts
Студент
Код:
//Query Student table for bAlertSetup
SqlCeCommand AlertQuery = new SqlCeCommand("SELECT * from Students AND Accounts", conn);
reader = AlertQuery.ExecuteReader();
while (reader.Read())
{
bSinglePersonAlertSetup = reader.GetBoolean(5);
if (bSinglePersonAlertSetup == true)
{
int AccountID = reader.GetInt32(7);
decimal Threshold = reader.GetDecimal(6);
//decimal Total = get decimal from the accounts table where accountID (in the accounts table) = AlertAccountID
//See if Students account is below the defined threshold
if (Total < Threshold)
{
StudentEmailAddress = reader.GetString(3);
if (StudentEmailAddress != null)
{
Console.WriteLine(StudentEmailAddress);
mail.To.Add(StudentEmailAddress);
//Update bAlertSetup
SqlCeCommand UpdateBool = new SqlCeCommand("UPDATE Students set bSendAlert = 0 WHERE UserId = @ID");
UpdateBool.Parameters.AddWithValue("@ID", reader.GetInt32(0));
UpdateBool.Connection = conn;
UpdateBool.ExecuteNonQuery();
}
}
}
EDIT:
Вот новый запрос я использую, что я считаю, правильно соединяет две таблицы с колонками необходимо. Теперь, как мне получить индекс каждого столбца для использования в методе GetDecimal()?
SqlCeCommand AlertQuery = new SqlCeCommand("SELECT st.bAlertSetup, st.AccountThreshold, st.AlertAccountID, acc.AccountID, acc.AccountTotal FROM Students st INNER JOIN Accounts acc ON st.AlertAccountID = acc.AccountID", conn);
Попробуйте это: read.GetDecimal (6) .ToString(). – Marek
Вам нужно отредактировать свой запрос здесь, чтобы получить столбец со второй таблицы. – Ehsan
Я считаю, что часть в настоящее время работает правильно, как это. Проблема, с которой я сталкиваюсь, заключается в получении соответствующих «AccountID» и «AccountTotal» из таблицы «Аккаунты». –