string kolumn = listBoxTotal.SelectedItem.ToString();
string SQL = "Select Firma,Namn,Box,Adress,PostOrt,Tel,
Mobil,Fax,URL,Epost,Anteck,EjLjud,Info,SkickCd FROM t_Kunder
WHERE Firma = '" + kolumn + "'";
da = new OleDbDataAdapter(SQL, con);
ds = new DataSet("frånKund");
try
{
con.Open();
da.Fill(ds, "frånKund");
con.Close();
}
catch(Exception fel)
{
MessageBox.Show(fel.Message,"Databasfel");
}
int a = 0;
foreach(TextBox t in tr)
{
t.Text = ds.Tables["frånKund"].Rows[0][a].ToString();
a++;
}
}
Detta fungerar kanonbra, men jag kommer inte på hur jag skall
fylla på med checkboxarna.
Jag borde säkert öka tr med 3, men då säger debuggen att jag
inte kan blanda textboxar med checkboxar. Hur bör jag göra här?
Sedan borde jag ju ha en ifsats för att kolla om de är falskt eller
sant?
Men kan/bör jag göra detta inne i foreach slingan?
Byt typ på tr till nåt som både TextBox och CheckBox ärver av. Tex Form eller för enkelhetens skull Object.
Object[] tr;
tr = new Object[14];
//Fyll på med textboxar, checkboxar eller vad du vill precis som tidigare.
//osv ..
foreach(Object t in tr)
{
//Kolla om det är en [i]TextBox[/i] och casta från [i]Object[/i] till [i]TextBox[/i] isåf.
if(t is TextBox)
((TextBox)t).Text = ds.Tables["frånKund"].Rows[0][a].ToString();
else
//Hantera checkboxar här.
}
Först och främst bör du skriva: CheckBox eftersom C# är känsligt för stora och små bokstäver. Sen är jag tveksam till din castning till bool. Datasetet innehåller väl strängvärden?
Prova:
if (ds.Tables["frånKund"].Rows[0][a].ToString()=="nånting")
((CheckBox)t).Checked=true;
else
((CheckBox)t).Checked=false;