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


Deleta ikryssade namn i listview

Postades av 2003-12-08 14:57:26 - Benni Svensson, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 830 personer

Jag har en listView med kryssrutor. listViewn fyll supp ifrån databasen.
Nu skulle jag villja ha det så, att om jag kryssar i flera stycken, så skall dessa deletas i databasen.
När jag bara skall ta bort en så fungerar ju detta:
<code>
uppdatera=false;
tabort=true;
ny=false;
ds.Tables["frånProspects"].Rows[0].Delete();
</code>
Men jag får problem när jag vill ta bort flera:
Så här försöker jag:
<code>
int rader=listView1.CheckedItems.Count;
foreach( ListViewItem item in listView1.Items )
{
if(item.Checked==true)
{
for(int a = 0;a<rader;a++)
{
ds.Tables["frånProspects"].Rows[a].Delete(); }
}
UppdateraDatabasen();
uppdatera=false;
tabort=true;
ny=false;
}
</code>
Jag får ett error:
<code>
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in system.data.dll

Additional information: Det finns ingen rad på positionen 1.
</code>
Hur bör jag göra?


Svara

Sv: Deleta ikryssade namn i listview

Postades av 2003-12-08 15:51:17 - Johan Bovin

Matchar indexen i listviewn raden i tabellen?
i så fall borde du väl kunna göra typ:

<code>
int rader=listView1.CheckedItems.Count;
for(int i=rader;i>=0;i--) //räkna baklänges om du vill ta bort i listviewn samtidigt... dvs om den inte är databound eller nåt
{
if(listView1.Items[i].Checked)
{
ds.Tables["frånProspects"].Rows[i].Delete();
listView1.Items.RemoveAt(i); //ta bort ur listviewn
}
}
UppdateraDatabasen();
uppdatera=false;
tabort=true;
ny=false;
</code>


Svara

Sv: Deleta ikryssade namn i listview

Postades av 2003-12-08 16:02:59 - Benni Svensson

<code>
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in system.data.dll
Additional information: Det finns ingen rad på positionen 2.
</code>
Detta har jag fått hela eftermiddagen.


Svara

Sv: Deleta ikryssade namn i listview

Postades av 2003-12-08 16:16:38 - Johan Bovin

det verkar inte som du har så många rader i din tabell då...
testa att skrivat ut ds.Tables["frånProspects"].Rows.Count.ToString();
och se hur många rader du har...
Antalet rader i tabellen måste ju matcha antalet rader i listviewn...


Svara

Sv: Deleta ikryssade namn i listview

Postades av 2003-12-08 16:42:50 - Benni Svensson

Det har verkar vara lika jobbigt som med treeViewn(mail kommer)
När jag gör som du ville:
<code>
MessageBox.Show(ds.Tables["frånProspects"].Rows.Count.ToString());
</code>
(Detta gjorde jag i loppen) dä fick jag svaret 1, Om jag lade den utaför loppen, så var det samma svar. Jag antar att det är här som det krabbar).

Så här ser det ut nu:
<code>
int rader=listView1.CheckedItems.Count;
for(int i=rader;i>=0;i--) //räkna baklänges om du vill ta bort i listviewn samtidigt... dvs om den inte är databound eller nåt
{
if(listView1.Items[i].Checked)
{
try
{
ds.Tables["frånProspects"].Rows[i].Delete();
listView1.Items.RemoveAt(i); //ta bort ur listviewn
}
catch(Exception fel)
{
MessageBox.Show(fel.Message,"Databasfel i Radera Kund");
}
}
}
UppdateraDatabasen();
UppdateraInfo();
FyllPåListView();
uppdatera=false;
tabort=true;
ny=false;
</code>
Jag får error:
"Det finns ingen rad på possition 2
Det finns ingen rad på possition 1
Det angavs ingen kommandotext.."

Jag har inte lagt in mera än fyra poster för att testa med men det borde väll fungera iallafall?

Ingenting blir deletat.


Svara

Sv: Deleta ikryssade namn i listview

Postades av 2003-12-08 17:02:38 - Johan Bovin

Din data verkar inte stämma. Om du får 1 så betyder ju det att du bara har en rad i tabellen. Om du sedan har fyra rader i listviewn så kommer den ju försöka ta bort en massa rader som inte existerar i tabellen. Om du kör vs.net eller nån miljö som stödjer debugging så borde du ta en titt på varför din tabell bara har en rad. Nånting verkar lite skumt här...


Svara

Sv: Deleta ikryssade namn i listview

Postades av 2003-12-08 19:59:16 - Benni Svensson

Nja det stämmer ju faktsikt.
När jag gör så här:
<code>
MessageBox.Show(listView1.Items[i].Text);
</code>
så får jag fram namnen på de markerade.
När man räknar( som du föreslog) då kan det ju bara vara ett, han tar ju bara en i sänder.
<code>
MessageBox.Show(ds.Tables["frånProspects"].Rows.Count.ToString());
</code>
Jag tror att jag vet vad felet är, jag skickar ju vidare till uppdatera databasen, och har där en sql som tar bort.
<code>
string namn = textBoxNamn.Text;

if(ny==true)
{
sqlInsert= ("Insert INTO t_Prospects(Namn,Epost)VALUES( '" + namn + "','" + epost + "')");
// lite kod
OleDbCommand mDeleteCommand=new OleDbCommand(sqlDelete,con);
con.Open();
OleDbDataAdapter mAdapter=new OleDbDataAdapter(); //här läggs classen
mAdapter.DeleteCommand = mDeleteCommand;
mAdapter.Update(ds,"frånProspects");
con.Close();
</code>
Jag jämmför ju med vad som står i en textruta.
Jag misstänker att jag måste göra en public string, och läsa av namnet ifrån listViewn.
Vad tror du?
[REDIGERAT]
Jag har löst problemet.
Jag gjorde en public string, som jag i loppen fick läsa av namnet på posten i listViewn, sedan så körde jag som vanligt.
Fungera kanon.
Tack för hjälp


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 569 155
27 952
271 704
6 824
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