想象一下这张桌子:
MatchID UserID MatchField MatchValue
7 5 MatchInterests 3
8 5 MatchInterests 7
9 5 MatchInterests 12
10 5 MatchInterests 20
11 5 MatchInterests 26
12 2 MatchInterests 7
13 2 MatchInterests 26
14 4 MatchInterests 26
15 5 MatchStates 12
16 5 MatchStates 11
17 2 MatchStates 1
18 2 MatchStates 17
19 4 MatchStates 10
我想要做的是在用户 5 的列表框中为字段 MatchInterests 预先选择 MatchValues 值。因此,我想要预选的结果数据集如下所示:
MatchID UserID MatchField MatchValue
7 5 MatchInterests 3
8 5 MatchInterests 7
9 5 MatchInterests 12
10 5 MatchInterests 20
11 5 MatchInterests 26
最好的方法是什么?
我试图做的是:
string strSQL2 = "SELECT MatchValue FROM tmpUsermatch WHERE MatchField = 'MatchInterests' AND UserID = '" + (DT2["UserID"].ToString()) + "'";
Interests.SelectionMode = ListSelectionMode.Multiple;
using (var con = new SqlConnection(strCon1))
using (var adapter2 = new SqlDataAdapter(strSQL2, con))
{
DataTable dt2 = new DataTable();
adapter2.Fill(dt2);
foreach (DataRow row in dt2.Rows)
{
Interests.SelectedValue = row["MatchValue"].ToString();
}
}
这可行,但只会导致选择数据集的最后一条记录中的值,并且我需要选择每条记录中的值。
按要求:控制名称兴趣的标记。
<tr>
<td style="width:160px">
<asp:Label ID="Label26" runat="server" AssociatedControlID="Interests">Interests:</asp:Label>
</td>
<td style="width:300px">
<div id="UCStyle1">
<asp:ListBox ID="Interests" SelectionMode="Multiple" runat="server">
</asp:ListBox>
</div>
</td>
</tr>