Ik moet voor een webapplicatie door middel van een querie wat gegevens uit een MySQL database halen en hiervan een stickervel printen. Nu was ik bezig met pdfjes maar toen las ik over crystal reports. En aangezien ik hier toch de beschikking heb over Visual Studio leek mij dit vele malen geschikter.
Nu ben ik dus aan het stoeien geweest om data vanuit een MySQL db in een crystal report te krijgen.
Onderstaande code gebruik ik nu:
Tot hier gaat het allemaal goed, de dataset stickerDB wordt netjes gevuld. Nu moet ik de dataset nog aan de crystalreportviewer hangen toch? Daar vond ik op internet de volgende code voor:
Nu snap ik alleen niet waar hij CrystalReport1 vandaan haalt? Ik had al de ReportClass geprobeerd maar als ik daar de SetDataSource() van gebruik en ik geef stickerDB mee krijg ik de melding:
Tekenreeksverwijzing is niet voor een exemplaar van een String ingesteld.
De pagina waar ik vanaf heb gekeken is overigens deze
De vraag is dus eigenlijk hoe ik de dataset moet koppelen aan mijn crystelreportviewer1
Nu ben ik dus aan het stoeien geweest om data vanuit een MySQL db in een crystal report te krijgen.
Onderstaande code gebruik ik nu:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| protected void CrystalReportViewer1_Load(object sender, EventArgs e) { //Verbinding maken met server mbv string uit de web.config MySqlConnection conn = new MySqlConnection(); conn.ConnectionString = ConfigurationManager.ConnectionStrings["MySqlServer"].ConnectionString; //command om de data uit de db te halen, query wordt dynamisch maakt nu niet uit MySqlCommand cmd = new MySqlCommand("SELECT artikelNummer,omschrijving,extraInfo,merk FROM `tbl_kernassortiment`",conn); conn.Open(); // Create a Dataset and using DataAdapter to fill it //dataadapter maken en deze vervolgens koppelen aan het command MySqlDataAdapter adap = new MySqlDataAdapter(); adap.SelectCommand = cmd; //nieuw dataset aanmaken vanuit stickervelset (dat is een .xsd bestand DataSet) StickervelSet stickerDB = new StickervelSet(); stickerDB.Clear(); //deze vervolgens vullen adap.Fill(stickerDB, "ArtikelInfo"); } |
Tot hier gaat het allemaal goed, de dataset stickerDB wordt netjes gevuld. Nu moet ik de dataset nog aan de crystalreportviewer hangen toch? Daar vond ik op internet de volgende code voor:
C#:
1
2
3
4
5
6
| // Create a CrystalReport1 object CrystalReport1 myReport = new CrystalReport1(); // Set the DataSource of the report myReport.SetDataSource(custDB); // Set the Report Source to ReportView crystalReportViewer1.ReportSource = myReport; |
Nu snap ik alleen niet waar hij CrystalReport1 vandaan haalt? Ik had al de ReportClass geprobeerd maar als ik daar de SetDataSource() van gebruik en ik geef stickerDB mee krijg ik de melding:
Tekenreeksverwijzing is niet voor een exemplaar van een String ingesteld.
De pagina waar ik vanaf heb gekeken is overigens deze
De vraag is dus eigenlijk hoe ik de dataset moet koppelen aan mijn crystelreportviewer1