Jag uppdatera min CheckBoxList så här: Jag svarar mig själv.Problem med CheckBoxList
<code>
int alItem = CheckBoxList1.Items.Count;
int i = 0;
string sNamn = "";
int ipersonId = 0;
int perLedId = Int32.Parse(ListBox1.SelectedValue.ToString());
while (i < alItem)
{
if (CheckBoxList1.Items[i].Selected)
{
ipersonId = Int32.Parse(CheckBoxList1.Items[i].Value);
sNamn = CheckBoxList1.Items[i].Text;
laggTillTaBort(ipersonId, perLedId, sNamn);
}
i++;
}
}
//sen i laggTillTaBort
private void laggTillTaBort(int ipersonId, int perLedId, string sNamn)
{
DBConn.Close();
sql = "Update t_person Set arbetsLed =? WHERE personId =?";
OleDbCommand cmd = new OleDbCommand(sql, DBConn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("arbetsLed", OleDbType.Integer).Value = perLedId;
cmd.Parameters.Add("personId", OleDbType.Integer).Value = ipersonId;
DBConn.Open();
cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
DBConn.Close();
Lifo.CssClass = "labelNormal";
Lifo.Text = "Överfördrda till arbetsledaren: " + sNamn;
DBConn.Close();
}
</code>
Detta fungerar bara halvbra, jag kan lägga till dvs då får jag checkBoxListen att bli selectad,
men om jag kryssar bort en post, då skall ju databasen ändras till 0 och posten inte bli selectad.
Till detta skulle jag vara glad om jag fick lite hjälp.Sv: Problem med CheckBoxList
Jag var tvungen att ändra och bygga ut det lite mera:
<code>
bool detFinns = false;
while (i < alItem)
{
if (CheckBoxList1.Items[i].Selected)
{
ipersonId = Int32.Parse(CheckBoxList1.Items[i].Value);
sNamn = CheckBoxList1.Items[i].Text;
laggTillTaBort(ipersonId, perLedId, sNamn);
}
else
{
ipersonId = Int32.Parse(CheckBoxList1.Items[i].Value);
sNamn = CheckBoxList1.Items[i].Text;
detFinns = checkALedare(DBConn, ipersonId);
if(detFinns==true)
laggTillTaBort(ipersonId, 0, sNamn);
}
i++;
}
//jag fick göra ytterliga en ny class
private static bool checkALedare(OleDbConnection DBConn,int ipersonId)
{
DBConn.Close();
bool bAled = false;
string sql="SELECT t_person.personId, t_person.arbetsLed FROM t_person WHERE t_person.personId=?";
OleDbCommand cmd = new OleDbCommand(sql, DBConn);
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add("personId", OleDbType.Integer).Value = ipersonId;
OleDbDataReader objDR;
DBConn.Open();
objDR = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
if (objDR.HasRows)
bAled = true;
else
bAled = false;
DBConn.Close();
return bAled;
}
</code>
..och nu fungerar det bra, kanske inte den snyggaste kodningen men...