У меня есть таблица данных, которая в настоящее время отображает все записи из таблицы базы данных. Я использую asp. net и ado. net. Таблица заполняется хранимой процедурой, которая просто select * from table
. Когда мое представление загружается, таблица заполняется всеми записями. Я хочу, чтобы таблица отображала только связанные записи одновременно, пока эти записи в таблице не будут авторизованы (приняты или отклонены, а затем записи вставлены в другие таблицы) или нажата кнопка «Далее». Эти записи будут сгруппированы по идентификатору. Какой идентификатор отображается первым при загрузке представления, зависит только от того, какой идентификатор первой записи.
Чтобы привести пример данных и того, как я хочу, чтобы они отображались: Все записи:
PageID AID Name
1 60 Book1
2 60 Book7
3 50 Book7
4 60 Book8
5 70 Book12
6 70 Book7
Первый идентификатор - 60 (AID), поэтому я хотел бы, чтобы через l oop В столбце найдите все AID60, отобразите их в виде, после того, как все они будут выполнены, он переместится в AID50 et c et c ...
PageID AID Name
1 60 Book1
2 60 Book7
4 60 Book8
То, что у меня есть в данный момент в контроллере для получения записей:
public ActionResult toAction()
{
SqlConnection con = new SqlConnection();
con = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionstringpath"].ToString());
List<ActionModel> AList = new List<ActionModel>();
SqlCommand com = new SqlCommand("Action", 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 CurrentAID = dtRow["AID"].ToString();
if (dtRow["AID"].ToString().Equals(CurrentAID))
{
AList = (from DataRow dr in dt.Rows
select new ActionModel()
{
PageID = Convert.ToInt32(dr["PageID"]),
AID = Convert.ToInt32(dr["AID"]),
Name = Convert.ToString(dr["Name"])
}).ToList();
}
}
return View(AList);
}
Я знаю, что приведенный выше код неверен, так как foreach l oop не работает. Идея состоит в том, чтобы получить AID первой записи в таблице, l oop через остаток столбца, ища тот же AID, и добавить все записи в список для отображения в представлении. После действия в представлении появится следующий AID. (У меня уже есть кнопки Accept / Reject / Next)
Мне просто нужно, чтобы foreach работал правильно, чтобы показывать только один AID за раз. Я не буду передавать AID в качестве параметра, поэтому Select * from Action where AID = @AID
не будет работать.