Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

CSharp Anzeigeproblem mit mehreren Tabellen im DataGrid

Frage Entwicklung VB for Applications

Mitglied: Beowolf

Beowolf (Level 1) - Jetzt verbinden

13.10.2008, aktualisiert 21.10.2008, 5360 Aufrufe, 1 Kommentar

Hallo Zusammen,

ich befinde mich gerade Daten aus einer Access Datenbank auszulesen und zu druckern. Das Druckerklasse stammt noch von meinem Vorgänger, so dass ich diese nicht angefasst habe. Der Inhalt bzw. das Gesamte Datagrid wird an diese Klasse übergeben und kann somit gedruckt werden.
Zu meinem Problem:
Meine Access Datenbank besteht aus 3 Tabellen. Teilweise lese ich mehrere Tabellen in das Datagrid ein. Funktioniert alles wunderbar, solange ich nicht drucke. Wurde der Inhalt einer Tabelle ausgedruckt, sind die Abfragen anderen Abfragen nicht mehr vollständig.
Aufgrund der Spaltenbreite nutze ich 5 Spalten pro Abfrage. Eine Abfrage kann mehrere Tabellen beinhalten.

Hier mal der Quelltext eines Teiles der Abfragen:

Abfrage Inventar + Raum
01.
         
02.
private string sqlueb = null; 
03.
private DataSet dsueb = null; 
04.
private OleDbConnection conueb = null; 
05.
private DataTable tblueb; 
06.
 
07.
private void button3_Click_1(object sender, EventArgs e) 
08.
09.
sqlueb = "SELECT Raum.Raum, Inventar.InvNr, Inventar.Bezeichnung, Inventar.Anzahl, Inventar.KSt FROM enthaelt, Inventar, Raum WHERE enthaelt.RaumID=Raum.Nr and enthaelt.Inventarnummer=Inventar.InvNr AND Inventar.gelöscht = 'xxx' ORDER BY Raum.Raum;"; 
10.
// FillDataGrid(); 
11.
try 
12.
13.
conueb = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Inventur.mdb"); 
14.
OleDbDataAdapter adapterueb = new OleDbDataAdapter(sqlueb, conueb); 
15.
dsueb = new DataSet(); 
16.
tblueb = new DataTable(); 
17.
conueb.Open(); 
18.
adapterueb.Fill(dsueb); 
19.
conueb.Close(); 
20.
dataGrid.DataSource = dsueb.Tables[0]; 
21.
dataGrid.Font = new Font("Verdana", 8); 
22.
23.
catch (Exception ex) 
24.
25.
Console.WriteLine(ex.Message); 
26.
27.
dataGrid.CaptionText = "Übersicht"; 
28.
} 
Abfrage Raum
01.
private string sqlraum = null; 
02.
private DataSet dsraum = null; 
03.
private OleDbConnection conraum = null; 
04.
 
05.
private void btn_Raum_Click(object sender, EventArgs e) 
06.
07.
sqlraum = "SELECT Raum.Nr, Raum.Raum, Raum.x, Raum.y, Raum.z FROM Raum ORDER BY Raum.Raum;"; 
08.
//FillDataGrid(); 
09.
try 
10.
11.
conraum = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Inventur.mdb"); 
12.
OleDbDataAdapter adapterraum = new OleDbDataAdapter(sqlraum, conraum); 
13.
dsraum = new DataSet(); 
14.
conraum.Open(); 
15.
adapterraum.Fill(dsraum); 
16.
conraum.Close(); 
17.
dataGrid.DataSource = dsraum.Tables[0]; 
18.
dataGrid.Font = new Font("Verdana", 8); 
19.
20.
catch (Exception ex) 
21.
22.
Console.WriteLine(ex.Message); 
23.
24.
dataGrid.CaptionText = "Räume"; 
25.
}
Abfrage Inventar
01.
   
02.
private string sqlinv = null; 
03.
private DataSet dsinv = null; 
04.
private OleDbConnection coninv = null; 
05.
 
06.
private void btn_Inventar_Click(object sender, EventArgs e) 
07.
08.
sqlinv = "SELECT Inventar.InvNr, Inventar.Bezeichnung, Inventar.Anzahl, Inventar.KSt, Inventar.Bemerkungen FROM Inventar Where Inventar.gelöscht = 'xxx' ORDER BY InvNr;"; 
09.
//FillDataGrid(); 
10.
 
11.
try 
12.
13.
coninv = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Inventur.mdb"); 
14.
OleDbDataAdapter adapterinv = new OleDbDataAdapter(sqlinv, coninv); 
15.
dsinv = new DataSet(); 
16.
coninv.Open(); 
17.
adapterinv.Fill(dsinv); 
18.
coninv.Close(); 
19.
dataGrid.DataSource = dsinv.Tables[0]; 
20.
 
21.
dataGrid.Font = new Font("Verdana", 8); 
22.
23.
catch (Exception ex) 
24.
25.
Console.WriteLine(ex.Message); 
26.
27.
 
28.
dataGrid.CaptionText = "Inventar"; 
29.
}
Alle Abfragen funktionieren, solange nicht gedruckt wird. Nachdem Drucken der Tabelle Inventar werdem bei der Abfrage Inventar + Raum nur noch die 4 Spalten angezeigt (Raum fehlt) und in der Abfrage Raum wird entweder nichts mehr oder nur die Spalte Raum angezeigt.

Das DataSet enthält jedoch die richtigen Werte, schreibt sie jedoch nicht ins Datagrid. Vor dem Drucken werden alle Ergebnisse korrekt angezeigt.

Hinweis:
  • Ich verwende ein DataGrid und kein DataGridView
  • Ein DataGridView kann nicht an die Druckerklasse übergeben werden.

Kann mir irgendjemand sagen, wo mein Fehler liegt?

Vielen Dank im vorraus.

Gruß Steffen

##Edit: Format angepasst
Mitglied: Beowolf
21.10.2008 um 09:08 Uhr
Hallo Zusammen,

Vielen Dank an alle.
Ich habe es hinbekommen, das Zauberwort heißt TableStyles.
Für alle die mal vor dem selben Problem stehen:
Bei Abfragen unterschiedlicher Tabellen und Spalten werden im Datagrid die Tablestyles angepasst. Bei einer Abfrage einer neuen Spalte ist diese nicht im tableStyle enthalten und wird somit nicht angezeigt.
Ein
01.
dataGrid.TableStyles.Clear();
vor jeder Abfrage behebt das Problem, da die TableStyles jedesmal neu geschrieben werden

Gruß Steffen
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL - Mehrere Tabellen über JOINS verketten (1)

Frage von Gwahlers zum Thema Datenbanken ...

C und C++
gelöst CSharp kopierbare Liste in WPF (1)

Frage von it4baer zum Thema C und C ...

VB for Applications
Mehrere Spalten Durchsuchen und Ergebnisse in neuer Tabelle Ausgeben (3)

Frage von Mr.Green zum Thema VB for Applications ...

Microsoft Office
gelöst Übertrag in eine andere Tabelle (7)

Frage von charmeur zum Thema Microsoft Office ...

Neue Wissensbeiträge
Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(6)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Datenschutz

Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht

Information von BassFishFox zum Thema Datenschutz ...

Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(25)

Information von SeaStorm zum Thema Utilities ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (25)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

Windows Netzwerk
Dateien mit Intelligenz per GPO ins Programmverzeichnis (14)

Frage von erwin.t zum Thema Windows Netzwerk ...

JavaScript
gelöst Kopierschutz auf Webseite (13)

Frage von honeybee zum Thema JavaScript ...