У меня есть данные из таблицы SQL, отображаемой в виде. Таблица имеет следующее: Authorize (AuthoriseID, TransactionID, TransactionName, AccountID, AccountName, Match). TransactionID и AccountID повторяются несколько раз, но только один раз (они получены из двух разных таблиц, которые были объединены с помощью функции сопоставления).
В настоящее время у меня есть HTTPRET ActionResult, который использует сохраненную процедуру для «Выбрать * из заказа на авторизацию по TransactionID». Все из таблицы возвращается пользователю. Я хочу только строки для определенного TrnsactionID. Затем пользователь примет или отклонит (отправляет строки в другие таблицы в базе данных). Как только все строки этого TransactionID будут завершены, он перейдет к следующему TransactionID и всем строкам с этим TransactionID. RnsactionID изменится, поэтому первый TransactionID, отображаемый для пользователя, зависит только от того, что является первым идентификатором.
У меня вопрос: как мне l oop пройти через один столбец в таблице данных, получить только совпадающие значения отобразить эти строки и затем перейти к следующему идентификатору после того, как все строки будут авторизованы?
Я знаю, что мне нужно было бы установить первый TransactionID для переменной, а затем l oop через таблицу данных, если какая-либо из другие значения в этом столбце соответствуют переменной, а затем добавляют в список ... Я просто не могу понять, что это правильно. Я попробовал несколько вещей, и это не так. Это одна попытка -
Это мой код для контроллера (все работает при отправке всех данных в представление):
public ActionResult Authorise()
{
SqlConnection con = new SqlConnection();
con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbpath"].ToString());
List<AuthoriseModel> AuthoriseList = new List<AuthoriseModel>();
SqlCommand com = new SqlCommand("GetAuthorise", con);
com.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable dt = new DataTable();
con.Open();
da.Fill(dt);
con.Close();
foreach (DataRow dtRow in dt.Rows)
{
string CurrentUID = dtRow["TransactionID"].ToString();
if (dtRow["TransactionID"].ToString().Equals(CurrentUID))
{
AuthoriseList = (from DataRow dr in dt.Rows
select new AuthoriseModel()
{
AuthoriseID = Convert.ToInt32(dr["AuthoriseID"]),
TransactionID = Convert.ToInt32(dr["TransactionID"]),
TransactionName = Convert.ToString(dr["TransactionName"]),
AccountID = Convert.ToInt32(dr["AccountID"]),
AccountName = Convert.ToString(dr["AccountName"]),
PercentMatch = Convert.ToString(dr["PercentMatch])
}).ToList();
}
}
return View(AuthoriseList);
}
В этом списке будут отображаться только строки с тем же TransactionID, после того как все строки будут обработаны и удалены, затем он перейдет к следующему TransactionID?
Заранее спасибо