Выполните итерацию по одному столбцу в таблице данных, чтобы найти совпадающие значения, затем добавьте в список для вывода для просмотра - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть данные из таблицы 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?

Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...