私の ASP Web ページには、プロジェクトに必要な多数のスキルをリストしたチェックボックス リストがあります。私がやりたいことは、このチェックボックスリストから複数の項目をチェックしてから、チェックされたものに関連するスキルを持つすべてのユーザーを一覧表示する検索機能を作成することです。これを機能させることはできますが、すべてのユーザーを表示するのではなく、1 人のユーザーのみを表示します。
たとえば、チェックボックス リストから「Planning」と「Designing」をチェックすると、必要なスキルを持っているユーザー「Peter」と「Vicki」がリストされますが、私のコードでは Peter しか表示されません。私のコードは以下の通りです:
StringBuilder sb2 = new StringBuilder();
foreach (ListItem item in chkGeneralSkills.Items)
{
if (item.Selected)
{
sb2.AppendFormat("{0} ", item.Text);
using (SqlConnection oConn = new SqlConnection(ConfigurationManager.ConnectionStrings["connString"].ToString()))
{
string sql = "SELECT us.FName + ' ' + us.SName As 'Name', " +
"sk.SkillsID, sl.SkillTitle " +
"FROM Users us " +
"LEFT JOIN Skills sk ON sk.UserID = us.UserID " +
"LEFT JOIN SkillsListing sl ON sl.SkillsListingID = sk.SkillsListingID " +
"WHERE sl.SkillTitle LIKE '" + item.Text + "'";
try
{
oConn.Open();
SqlCommand cmd = new SqlCommand(sql, oConn);
SqlDataReader reader = cmd.ExecuteReader();
chkMatchedUsers.DataTextField = "Name";
chkMatchedUsers.DataValueField = "Name";
chkMatchedUsers.DataSource = reader;
chkMatchedUsers.DataBind();
oConn.Close();
}
catch (Exception)
{
throw;
}
}
}
}