webForumDet fria alternativet

Collection från Listbox?

.NETur .NET

13 svar · 370 visningar · startad av Josef

Medlem sedan mars 20023 561 inlägg
Frågan#1

Jag har en listbox (lbstations) som innehåller ett antal siffervärden.

Jag vill hämta alla rader i en databas där id:t stämmer överrens med det i listboxen. Dessa databasrader vill jag sedan lagra i applikationen på ett smidigt sätt.

Hur skulle ni göra? Dels bara för att loopa värdena från databasen, och dels för att sedan lagra dem.

I mitt huvud står det still så all hjälp är mer än välkommen. :)

Medlem sedan dec. 19996 522 inlägg
#2

Om siffervärdena är kommaseparerade eller dylikt, kan du inte använda

WHERE kolumnnamn IN (värde1,värde2,värde3), så får du ett resultset innehållandes endast alla id:na.

Eller är det bara ett ID från din listboxcollection?

Medlem sedan mars 20023 561 inlägg
#3

Listbox:en innehåller värden som stämmer överrens med id:na i databasen...

Medlem sedan dec. 19996 522 inlägg
#4

Då kan du ju hämta ut dem med WHERE kolumnnamn IN (värde1,värde2,värde3, osv)

eller gör du det redan :)

Medlem sedan mars 20023 561 inlägg
#5

Hmm... Nej, det gör jag inte.
Får kolla på det imorgon då hjärnan är lite mer på alerten. :bire

Tackar!

Medlem sedan dec. 19996 522 inlägg
#6

Vad ska du använda datat till sedan? Med tanke på i vilket form du vill ha ut dem

Medlem sedan mars 20023 561 inlägg
#7

Tanken är att programmet ska skapa en Excel-fil med innehållet från databasen. Går det?

Medlem sedan dec. 19996 522 inlägg
#8

Ja, hur komplicerad ska excel-filen vara? Excel läser ju in tab-separerade textfiler som excelark annars :) I klassisk asp kunde man annars skapa komplicerade excel-filer med hjälp av OWC (Office Web Components), det borde gå att göra liknande med .net, vilken version av excel är det, har för mig att de senare kan läsa in xml-filmer

Medlem sedan mars 20023 561 inlägg
#9

erka skrev:

Har för mig att de senare kan läsa in xml-filer.

Ja, det har jag också för mig. Jag använder 2k3.

Jag har aldrig pysslat med XML i .Net (det har jag förrensten inte gjort annars heller).
Men får jag bara in raderna från databasen i ett DataSet är det ju ganska enkelt sen.

Medlem sedan dec. 19996 522 inlägg
#10

Släng in dem i ett datatable, om du inte behöver ha relationer etc. Sen från det kan du skriva ut xml eller en textfil, prova å öppna en xmlfil i excel, en tabbad textfil öppnas ialla fall som ett excelldokument

Medlem sedan feb. 20013 023 inlägg
#11

Josef skrev:

Tanken är att programmet ska skapa en Excel-fil med innehållet från databasen. Går det?

Det är busenkelt. Håll inte på med några Office web components bara. Låt oss anta att du har ett dataset med värden som du hämtat från databasen

Lite flummig kod på frihand så att du fattar vad det handlar om.

dim oExcel as new Excel.application
dim oWbk as Excel.Workbook
dim iRow, iCol as integer
oWbk=oexcel.workbooks.add

For iRow=0 to MyDataset.tables(0).rows.count-1
for icol=0 to MyDataset.tables(0).cols.count-1
oWbk.sheets(1).cells(irow,iCol)=odataset.tables(0).rows(irow).item(icol)
Next
Next

Typ sådär men utan alla fel jag gjort nu. Återkommer

;)

Medlem sedan mars 20023 561 inlägg
#12

Smidigt!

Dock är det en bit kvar tills jag kommer till det stadiet.

Jag får inga värden i min array.

string[] arrStations = new string[lbStations.Items.Count];
for (int i = 0; i <= lbStations.Items.Count; i++)
{
	[b]arrStations[i] = lbStations.Items[i].ToString();[/b]
}

Varför? Får bara OutOfRange på den fetmarkerade raden.

Medlem sedan dec. 19996 522 inlägg
#13

for (int i = 0; i < lbStations.Items.Count; i++)

Ska det väll vara?

Medlem sedan mars 20023 561 inlägg
#14

Men börjar inte Items.Count på 0? Då ska det väl vara <= ("till och med")?

/red: Nej, det skulle det inte. :e

135 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)