Jag har nu fastnat ganska rejält på en sak som jag trodde var enkelt...
Jag har en listbox, med namn på ett antal arbetsledate, och listboxens
value = perLedId;
Jag har sedan en CheckBoxList med namn (anställda) value = iId
Ett fält i t_person heter arbetsled och är tal.
Min tanke: Genom att först markera en arbetsledare och sedan kryssa för
i CheckBoxListen så associera jag ett antal vanliga anställda till en arbetsledare, detta fungerar bra även om jag vill ta bort en arbetare så
fungerar det.
Problemet, jag kan inte få till det så att CheckBoxListen blir selectad...
private void fyllCheckBoxen()
{
int perLedId = 0;
int iId = 0;
if (ListBox1.SelectedValue != null)
perLedId = Convert.ToInt32(ListBox1.SelectedValue);
sql = "
SELECT
t_person.personId,
t_person.namn,
t_person.arbetsLed
FROM
t_perLedare
RIGHT JOIN
t_person
ON
t_perLedare.perLedarId = t_person.arbetsLed
ORDER BY
t_person.namn";
AccessDataPerson.SelectCommand = sql;
AccessDataPerson.DataBind();
int checkCount = CheckBoxList1.Items.Count;
//denna första sql:en fyller CheckBoxListen
for(int i=0;i< checkCount;i++)
{
DBConn.Close();
iId = Int32.Parse(CheckBoxList1.Items[i].Value);
sql="
SELECT
t_person.personId,
t_person.namn, t_person.arbetsLed "+
"
FROM t_perLedare
RIGHT JOIN
t_person
ON t_perLedare.perLedarId = t_person.arbetsLed "+
"
WHERE
t_person.personId=?
AND t_person.arbetsLed=?";
OleDbCommand cmd = new OleDbCommand(sql, DBConn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("personId", OleDbType.Integer).Value = iId;
cmd.Parameters.Add("arbetsLed", OleDbType.Integer).Value = perLedId;
OleDbDataReader objDR;
DBConn.Open();
objDR = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
if (objDR.HasRows)
CheckBoxList1.Items[i].Selected = true;
else
CheckBoxList1.Items[i].Selected = false;
sText = iId.ToString() + " " + perLedId.ToString();
}
Lifo.Text = sText;
DBConn.Close();
}
Jag dabbar mig någonstans men jag kan inte se det... x(