Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Checkbox problem

Postades av 2003-04-18 23:20:09 - Benni Svensson, i forum c# (c-sharp), Tråden har 5 Kommentarer och lästs av 927 personer

Jag kommer ite på ett bra sätt att lösa detta.
Jag har 10 text rutor och 3 kryssrutor.
Textrutorna initieras så här:
<code>
tr = new TextBox[11];

tr[0]=textBoxFirma;
tr[1]=textBoxNamn;
tr[2]=textBoxBox;
tr[3]=textBoxAdress;
tr[4]=textBoxPostOrt;
tr[5]=textBoxTelefon;
tr[6]=textBoxMobil;
tr[7]=textBoxFax;
tr[8]=textBoxURL;
tr[9]=textBoxEpost;
tr[10]=textBoxAnteckning;
</code
Sedan körs denna kod:
<code>
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++;
</code>
Men jag kommer inte på hur jag skall fylla på kryssrutorna.
Jag borde säkert öka tr med 3?
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?
Tacksam för svar.


Svara

Sv: Checkbox problem

Postades av 2003-04-19 17:21:03 - Per Hultqvist

Visst går det göra inne i loopen, men om det är snyggt eller inte kan ju diskuteras :

<code>
int a = 0;

foreach(a=0;a<13;a++)
{
if (a<10)
tr[a].Text = ds.Tables["frånKund"].Rows[0][a].ToString();
else
chk[a-10].Checked = (bool)ds.Tables["frånKund"].Rows[0][a].Value;
}
</code>

Observera här att jag förutsatt att checkboxarna ligger i en kontrollarray (chk) precis som textboxarna. Kontrollera även vad du får för returvärde på booleanfälten, beroende på om den returnerar true/false, 0/1 eller Yes/No så kanske konverteringen till bool misslyckas. Skriv då i stället :

<code>
chk[a-10].Checked = (ds.Tables["frånKund"].Rows[0][a].Value == "Yes");
</code>

Personligen skulle jag inte bry mig om att göra en loop här, men det är en personlig åsikt. Jag tycker inte att man tjänar mycket på att göra en loop här, eftersom du får lägga krut på att skapa kontrollarrayer för att kunna loopa. I slutändan blir det ungefär lika mycket kod (och mer lättläst?) att göra så här :

<code>
DataRow dr=ds.Tables["frånKund"].Rows[0];
textBoxFirma.Text = dr["Firma"].ToString();
textBoxNamn.Text = dr["Namn"].ToString();
textBoxBox.Text = dr["Box"].ToString();
// och så vidare...
chkEjLjud.Checked = (bool)dr["EjLjud"].Value;
</code>

Om man ändrar på antalet textfält som returneras i SQL-satsen så måste man ju in och justera i loopen vilket man nog lätt glömmer och får buggar som följd. Men det är din kod, så gör som du vill och som du trivs med...


Svara

Sv: Checkbox problem

Postades av 2003-04-19 19:38:10 - Benni Svensson

Tack Hultan.
Det jag gör är att jag försöker att översätta ifrån min första bok i C# till en sak jag behöver. Eftersom de där hade en slinga, så fortsatte jag med den.
Det var ju kanon hur du visade mig altenativen.
Tack


Svara

Sv: Checkbox problem

Postades av 2003-04-19 21:35:25 - Benni Svensson

Nu är jag kanske helt ute och seglar men jag försöker så här.
Jag behåller Arrayen, den behövs vid andra tillfällen så så här ser det nu ut:
<code>
foreach(TextBox t in tr)

{
t.Text = ds.Tables["frånKund"].Rows[0][a].ToString();
a++;
}
DataRow dr=ds.Tables["frånKund"].Rows[0];
checkBox1.Checked = (bool)dr["EjLjud"].value;
checkBox2.Checked = (bool)dr["Info"].value;
checkBox3.Checked = (bool)dr["SkickCd"].value;
</code>
Tyvärr så lyckas inte detta (det har du redan förstått.
Jag får fel "object does not contain definition for 'value'".

Vad tror du??
[REDIGERAT]
Efter att ha hittat något litet fel på annan plats så fungerade detta:
<code>
checkBox1.Checked=(dr["EjLjud"].ToString()=="True");
</code>
Tack för att du försökte att hjälpa mig


Svara

Sv: Checkbox problem

Postades av 2003-04-20 12:22:32 - Per Hultqvist

Jag skulle tro att du har ett Null-värde i någon av dessa kolumner, och att det var det som gav felmeddelandet. När du gör enligt alternativ två så jämför du ju med en sträng och det returnerar boolean false, vilket kanske är ok. Om du i stället vill returnera true om värdet är null så får du göra så här :

<code>
if (Convert.IsDbNull(dr["EjLjud"].Value))
checkBox1.Checked=true;
else
checkBox1.Checked=(dr["EjLjud"].ToString()=="True");
</code>

Eller alternativt :

<code>
checkBox1.Checked=Convert.IsDbNull(dr["EjLjud"].Value)?true:(dr["EjLjud"].ToString()=="True");
</code>

Eller så slog det mig just nu med att det räcker med att vända på uttrycket :

<code>
checkBox1.Checked=!(dr["EjLjud"].ToString()=="False");
</code>

Observera Not-operatorn (!) framför högersidan.

Som sagt, det var nog Null-värdet i kolumnen som gav felmeddelandet.


Svara

Sv: Checkbox problem

Postades av 2003-04-20 13:05:46 - Per Hultqvist

...eller snarare, om jag får rätta mig själv, så beror det på att det står "value" i stället för "Value". C# är ju case-sensitive.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 841
27 960
271 761
576
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies