こんにちは、テクノロジ ID に基づいて情報を取得するために次のクエリを作成しました。結果は適切に取得されていますが、要件に従って結果をマージする方法がわからないためです。
ループは、結果が読み込まれたグリッドに基づいて処理されます。2 行ある場合、このループは複数回実行され、すべてのループで結果が取得されます。そのレコードは、結果グリッドにバインドします。データセットをマージするように 結果をマージしたい
foreach (GridViewRow row in grdForum.Rows)
{
int quesID = Convert.ToInt16(grdForum.DataKeys[row.RowIndex].Values["TechID"].ToString());
var lastpost = db.tblQuestions.Where(u => u.TechID.Equals(quesID)).OrderByDescending(u => u.DatePosted).Take(1).ToList();
grdnewUser.DataSource = lastpost.ToList();
grdnewUser.DataBind();
}
public class Results
{
public DateTime DatePosted;
public string QuestionTitle;
public string UserName;
}
public void bindLastPost()
{
ArrayList a = new ArrayList();
foreach (GridViewRow row in grdForum.Rows)
{
int quesID = Convert.ToInt16(grdForum.DataKeys[row.RowIndex].Values["TechID"].ToString());
var lastpost = db.tblQuestions.Where(u => u.TechID.Equals(quesID)).OrderByDescending(u => u.DatePosted).Take(1).FirstOrDefault();
a.Add(new Results { DatePosted = lastpost.DatePosted, QuestionTitle = lastpost.QuestionTitle, UserName = lastpost.UserName });
}
grdnewUser.DataSource = a;
grdnewUser.DataBind();
答えのuser1974729
通り
int[] quesID;
int i = 0;
foreach (GridViewRow row in grdForum.Rows)
{
quesID[i] = Convert.ToInt16(grdForum.DataKeys[row.RowIndex].Values["TechID"].ToString());
i++;
}
//Check this part to find out how u will implement the Contains in Linq
var lastpost = from e in db.tblQuestions where quesID.Contains(e.TechID) select e;
}