Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

NET C-Sharp: 2x Dataadapter mit unterschiedlichem Select

Frage Entwicklung Visual Studio

Mitglied: 14116

14116 (Level 1)

21.01.2015, aktualisiert 09.02.2015, 714 Aufrufe, 2 Kommentare

Hallo,


im Unten angeführetem C# Code, verwende ich eine Form mit zwei DataGridViews an einer AccessDatenbank, angebunden via ODBC.
Das Ganze soll eine MASTER/DETAIL Ansicht sein.

Wenn im DgvPackageSelectionChanged das return auskommentiert wird, so funktioniert das erste Select * from Package wunderbar.
Alle Daten sind im DataGridView ersichtlich.

Läuft nun auch das OnSelect, so vernichtet der 2. Befehl dataAdapter.Fill(ds) die Ansicht des ersten DataGridViews?

Wieso?

Ich verwende doch unterschiedliche Instanzen?


Bitte um Hilfe.

LG
Günter




01.
/* 
02.
 * Created by SharpDevelop. 
03.
 */ 
04.
using System; 
05.
using System.Collections.Generic; 
06.
using System.Drawing; 
07.
using System.Net.Mime; 
08.
using System.Windows.Forms; 
09.
 
10.
using System.Data; 
11.
using System.Data.Odbc; 
12.
using System.Data.Common; 
13.
using System.Data.Sql; 
14.
using System.Data.SqlClient; 
15.
using System.Windows.Forms.VisualStyles; 
16.
 
17.
namespace PinTest 
18.
19.
	/// <summary> 
20.
	/// Description of MainForm. 
21.
	/// </summary> 
22.
	///  
23.
	public partial class MainForm : Form 
24.
25.
		OdbcConnection connA; 
26.
		OdbcConnection connB; 
27.
		 
28.
		public MainForm() 
29.
30.
			// 
31.
			// The InitializeComponent() call is required for Windows Forms designer support. 
32.
			// 
33.
			InitializeComponent(); 
34.
			 
35.
			// 
36.
			// TODO: Add constructor code after the InitializeComponent() call. 
37.
			// 
38.
			 
39.
	        // Verbindung herstellen 
40.
	        connA = new OdbcConnection();	         
41.
	        connA.ConnectionString =   
42.
	        	@"Driver={Microsoft Access Driver (*.mdb)};" + 
43.
	        	@"Dbq=D:\_src\Database\Database.mdb;Uid=Admin;Pwd=;"; 
44.
	        //connA.Open(); 
45.
 
46.
	        connB = new OdbcConnection();	         
47.
	        connB.ConnectionString =   
48.
	        	@"Driver={Microsoft Access Driver (*.mdb)};" + 
49.
	        	@"Dbq=D:\_src\Database\Database.mdb;Uid=Admin;Pwd=;"; 
50.
	        //connB.Open(); 
51.
	         
52.
			 
53.
			dgvPackage.MultiSelect=false; 
54.
			dgvPackage.ReadOnly=true; 
55.
			dgvPackage.SelectionMode=DataGridViewSelectionMode.FullRowSelect; 
56.
 
57.
			dgvMeasurement.MultiSelect=false; 
58.
			dgvMeasurement.ReadOnly=true; 
59.
			dgvMeasurement.SelectionMode=DataGridViewSelectionMode.FullRowSelect; 
60.
61.
		void MenuStrip1ItemClicked(object sender, ToolStripItemClickedEventArgs e) 
62.
		{	 
63.
64.
		void QuitToolStripMenuItemClick(object sender, EventArgs e) 
65.
66.
			Application.Exit(); 
67.
68.
		void CreateDatabaseToolStripMenuItemClick(object sender, EventArgs e) 
69.
70.
			System.Windows.Forms.FolderBrowserDialog objDialog = new FolderBrowserDialog(); 
71.
			objDialog.Description = "Select Path for Database"; 
72.
			objDialog.SelectedPath=@".";       // Vorgabe Pfad (und danach der gewählte Pfad)			 
73.
			 
74.
			if (objDialog.ShowDialog(this) == DialogResult.OK) 
75.
    			MessageBox.Show("New Path: " + objDialog.SelectedPath); 
76.
		}		 
77.
		void OpenDatabaseToolStripMenuItemClick(object sender, EventArgs e) 
78.
79.
		    try 
80.
81.
		        connA.Open(); 
82.
 
83.
		        string sql = @"select * from [Package]";		        
84.
		        OdbcDataAdapter dataAdapter = new OdbcDataAdapter(sql, connA); 
85.
		        //OdbcDataReader dataReader = new OdbcDataReader(sql, connA); 
86.
		         
87.
		        DataSet ds = new DataSet(); 
88.
		        ds.Clear(); 
89.
				dataAdapter.Fill(ds, "Package"); 
90.
				 
91.
 
92.
				connA.Close(); 
93.
				 
94.
				dgvPackage.DataSource = ""; 
95.
				dgvPackage.DataSource = ds; 
96.
				dgvPackage.DataMember = "Package"; 
97.
				dgvPackage.AutoGenerateColumns=true; 
98.
				dgvPackage.AutoResizeColumns( 
99.
					DataGridViewAutoSizeColumnsMode.ColumnHeader);	 
100.
				dgvPackage.Show(); 
101.
102.
		    catch (Exception) 
103.
104.
105.
		    finally 
106.
107.
		        // aufräumen 
108.
		        /* 
109.
		        if (reader != null) reader.Close(); 
110.
		        if (conn != null) conn.Close(); 
111.
		        */ 
112.
113.
		     
114.
115.
		void DataGridView1KeyDown(object sender, KeyEventArgs e) 
116.
117.
			if (e.KeyCode == Keys.Insert) 
118.
119.
				MessageBox.Show("Insert"); 
120.
121.
122.
		void DetailToolStripMenuItemClick(object sender, EventArgs e) 
123.
124.
125.
		void DgvPackageSelectionChanged(object sender, EventArgs e) 
126.
127.
			//return; 
128.
			 
129.
			// int rowIndex =  dataGridView1.CurrentRow.Index; 
130.
			// toolStripStatusLabel1.Text = rowIndex.ToString(); 
131.
			string id = dgvPackage.CurrentRow.Cells[0].Value.ToString(); 
132.
			string sPart = dgvPackage.CurrentRow.Cells[1].Value.ToString(); 
133.
			string sPackage = dgvPackage.CurrentRow.Cells[2].Value.ToString(); 
134.
			//toolStripStatusLabel1.Text = sPart + " | " + sPackage; 
135.
			 
136.
			 
137.
			// SQL-Kommando abschicken 
138.
			connB.Open(); 
139.
			 
140.
			string sql = @"SELECT ALL Moment FROM [Moment] WHERE (ID_Name LIKE " + id + ")]";		 
141.
			OdbcDataAdapter dataAdapter = new OdbcDataAdapter(sql, connB);  
142.
		         
143.
			DataSet ds = new DataSet(); 
144.
			ds.Clear(); 
145.
			dataAdapter.Fill(ds, "Moment"); 
146.
			 
147.
			connB.Close(); 
148.
		         
149.
			dgvMeasurement.DataSource = "";			 
150.
			dgvMeasurement.DataSource = ds; 
151.
			dgvMeasurement.DataMember = "Moment"; 
152.
			dgvMeasurement.AutoResizeColumns( 
153.
				DataGridViewAutoSizeColumnsMode.ColumnHeader);					 
154.
155.
		void DgvMeasurementSelectionChanged(object sender, EventArgs e) 
156.
157.
	 
158.
159.
160.
161.
 
Mitglied: 114757
LÖSUNG 21.01.2015, aktualisiert 09.02.2015
Moin Günter,
deine Datasets sind nur in den Prozeduren vorhanden, sobald die jeweilige Prozedur aber beendet ist, wird auch das Dataset zerstört ( ist ja nur eine lokale Prozedurvariable)...und somit hat das Datagridview keine Datenquelle mehr, ganz einfach
Du musst deine Datasets also außerhalb der Prozeduren deklarieren, damit diese Prozedurübergreifend erhalten bleiben.

Gruß jodel32
Bitte warten ..
Mitglied: 114757
08.02.2015 um 20:05 Uhr
Wenns das dann war gelöst nicht vergessen. Danke.
Bitte warten ..
Ähnliche Inhalte
C und C++
gelöst C-sharp Form buggt (2)

Frage von Yanmai zum Thema C und C ...

Visual Studio
gelöst C-Sharp WPF XAML CheckBox.IsEnabled wenn ListViewItem.Select (3)

Frage von mayho33 zum Thema Visual Studio ...

Windows Server
C sharp oder Powershell oder VB? (3)

Frage von 1410640014 zum Thema Windows Server ...

Visual Studio
Oracle Blob entpacken mit C-Sharp (4)

Frage von it4baer zum Thema Visual Studio ...

Neue Wissensbeiträge
Windows Tools

Zeit für Energiesparmodus, Bildschirmabschaltung etc. schnell anpassen

Anleitung von hannsgmaulwurf zum Thema Windows Tools ...

Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(4)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Heiß diskutierte Inhalte
Firewall
Richtige Grundeinstellungen der Pfsense für mein Netzwerk (14)

Frage von Spitzbube zum Thema Firewall ...

Switche und Hubs
gelöst Cisco 2960x Stacking über mehrere Etagen (12)

Frage von b3scher zum Thema Switche und Hubs ...