bjornidar Skrevet 3. desember 2010 Rapporter Del Skrevet 3. desember 2010 Hei! Sliter litt med en kode som har som funksjon å legge et utvalg til et DataSet. Det som skjer er at jeg først benytter en listView hvor man kan velge X-antall verdier. Disse valgte verdiene benyttes så til å hente frem alle data for hver verdi (gjennom en SQL-spørring). Disse mellomlagres i en DataTable med én rad for hver verdi. Til slutt skal den komplette DataTable legges i et DataSet som sendes til en excelgenerator. Har forsøkt utallige metoder, men finner ingen som fungerer... Noen som kan hjelpe? Her er koden: public void saveToExcel(string chosen) { // Kobler til database C:\Data\Access OleDbConnection Con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Data\Access\" + (string)comboBox1.SelectedItem + ".mdb;" + sb.ToString() + ""); // Forsøker valgt tilkobling try { // Lager dagens dato string dtNow = dtToday.ToString("yyyyMMdd"); if (chosen == "1") { // Oppretter et dataset for å holde på dataene DataSet dSet = new DataSet(); DataTable daTable = new DataTable(); DataTable allData = new DataTable(); for (int cnt = 0; cnt <= listBox1.SelectedItems.Count - 1; cnt++) { DataRowView ln = listBox1.SelectedItems[cnt] as DataRowView; string chQuery = "SELECT * FROM " + (string)comboBox1.SelectedItem + " WHERE " + listBox1.ValueMember + " = " + ln[listBox1.ValueMember.ToString()] + ";"; OleDbDataAdapter chdAdapter = new OleDbDataAdapter(chQuery, Con); // Bygger kommandoen til dataadapteret OleDbCommandBuilder chcBuilder = new OleDbCommandBuilder(chdAdapter); chdAdapter.Fill(daTable); allData.ImportRow(daTable.Rows[cnt]); } //TRENGER EN HJELPENDE HÅND I DETTE PUNKTET (KANSKJE DET SOM STÅR OVER OGSÅ) // Kaller på funksjon "exportToExcel" og sender med datasettet og plassering for lagring av excel-ark exportToExcel(dSet, @"" + (string)comboBox2.SelectedItem + "" + (string)comboBox1.SelectedItem + "_" + dtNow + ".xls"); } else // DENNE FUNGERER { // Oppretter SQL-spørring string query = "SELECT * FROM " + (string)comboBox1.SelectedItem + " ;"; // Oppretter et dataadapter OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, Con); // Bygger kommandoen til dataadapteret OleDbCommandBuilder cBuilder = new OleDbCommandBuilder(dAdapter); // Oppretter et dataset for å holde på dataene DataSet dSet = new DataSet(); // Fyller dataset med dataadapterets spørring dAdapter.Fill(dSet); // Kaller på funksjon "exportToExcel" og sender med datasettet og plassering for lagring av excel-ark exportToExcel(dSet, @"" + (string)comboBox2.SelectedItem + "" + (string)comboBox1.SelectedItem + "_" + dtNow + ".xls"); } // Tømmer sb og queryBuilder hvis de inneholder data if (sb.Length > 0) { sb.Remove(0, sb.Length); } if (queryBuilder.Length > 0) { queryBuilder.Remove(0, queryBuilder.Length); } } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Feil i filbane!", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } Lenke til kommentar
caid Skrevet 4. desember 2010 Rapporter Del Skrevet 4. desember 2010 Du må legge til tabellen du ønsker til datasettet dit, dette kan gjøres på mange måter. Eks: DataSet dSet = new DataSet(); DataTable daTable = dSet.Tables.Add("TableName"); Lenke til kommentar
bjornidar Skrevet 5. desember 2010 Forfatter Rapporter Del Skrevet 5. desember 2010 Takk, takk! Følgende fungerer strålende: if (chosen == "1") { // Oppretter et dataset for å holde på dataene DataSet dSet = new DataSet(); DataTable daTable = dSet.Tables.Add("daTable"); DataTable allData = new DataTable(); for (int cnt = 0; cnt <= listBox1.SelectedItems.Count - 1; cnt++) { DataRowView ln = listBox1.SelectedItems[cnt] as DataRowView; string chQuery = "SELECT * FROM " + (string)comboBox1.SelectedItem + " WHERE " + listBox1.ValueMember + " = " + ln[listBox1.ValueMember.ToString()] + ";"; OleDbDataAdapter chdAdapter = new OleDbDataAdapter(chQuery, Con); // Bygger kommandoen til dataadapteret OleDbCommandBuilder chcBuilder = new OleDbCommandBuilder(chdAdapter); chdAdapter.Fill(daTable); } // Kaller på funksjon "exportToExcel" og sender med datasettet og plassering for lagring av excel-ark exportToExcel(dSet, @"" + (string)comboBox2.SelectedItem + "" + (string)comboBox1.SelectedItem + "_" + dtNow + ".xls"); } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå