Laden...
Avatar #avatar-2613.jpg
King-Malkav myCSharp.de - Member
Experte Advanced Call Solutions Landau Dabei seit 28.03.2006 264 Beiträge
Benutzerbeschreibung

Forenbeiträge von King-Malkav Ingesamt 264 Beiträge

11.04.2006 - 16:15 Uhr

So hab mal ein wenig rumgetestet.
Das soll es können bzw. kann es:*Suche über Seriennummer *Auflistung aller gefunden Geräte *Durch anklicken der Seriennummer und klick auf Daten Laden werden Zusatzinfos aus 2 Tabellen geladen

Hier mal mein Code, es besteht keine Beziehungen in der Datenbank und sollen auch nicht (wahrscheinlich, damit man einfach die Datenbank wechseln kann - Ich weiß es nicht).

 
private void button6_Click(object sender, System.EventArgs e)
		{
			// Ausgewählte Hardware ID in Variable zähler laden
				
			string zähler = listBox1.SelectedValue.ToString();
			
			// HardwareID laden und die dazugehörigen TypID und HerstellerID holen
			SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM hardware WHERE [Hardware ID] = @ID", sqlConnection1);
			da.SelectCommand.Parameters.Add("@ID", SqlDbType.Int,4).Value = zähler;
			DataSet ds = new DataSet();
								
			try
			{				
				ds.Clear();
				sqlConnection1.Open();
				da.Fill(ds, "hardware");
				sqlConnection1.Close();
			}
			catch (Exception ex)
			{
				MessageBox.Show("Fehler " + ex.Message, "Fehler", MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
			
			// Daten aus dem Dataset in die String Variablen laden
			DataTable dt = ds.Tables["hardware"];
			DataRow aRow = dt.Rows[0];
			string TypID = aRow["TypID"].ToString();
			string HerstellerID = aRow["HerstellerID"].ToString();
			
			// HerstellerID umwandeln in Hersteller Name
			
			SqlDataAdapter daHersteller = new SqlDataAdapter("SELECT Hersteller FROM hersteller WHERE ID = @HerstellerID", sqlConnection1);
			daHersteller.SelectCommand.Parameters.Add("@HerstellerID", SqlDbType.Int,4).Value = HerstellerID;
			DataSet dsHersteller = new DataSet();

			try
			{
				dsHersteller.Clear();
				sqlConnection1.Open();
				daHersteller.Fill(dsHersteller, "hersteller");
				sqlConnection1.Close();
			}
			catch (Exception ex)
			{
				MessageBox.Show("Fehler " + ex.Message, "Fehler", MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
			DataTable dtHersteller = dsHersteller.Tables["hersteller"];
			DataRow aRowHersteller = dtHersteller.Rows[0];
			string strhersteller = aRowHersteller["Hersteller"].ToString();

			// TypID umwandeln in HardwareTyp
			
			SqlDataAdapter daHardwareID = new SqlDataAdapter("SELECT hardWareTyp FROM hardtyp WHERE HWID = @TypID", sqlConnection1);
			daHardwareID.SelectCommand.Parameters.Add("@TypID", SqlDbType.Int,4).Value = TypID;
			DataSet dsHardwareID = new DataSet();

			try
			{
				dsHardwareID.Clear();
				sqlConnection1.Open();
				daHardwareID.Fill(dsHardwareID, "hardtyp");
				sqlConnection1.Close();
			}
			catch (Exception ex)
			{
				MessageBox.Show("Fehler " + ex.Message, "Fehler", MessageBoxButtons.OK,MessageBoxIcon.Error);
			}
			DataTable dtHardwareID = dsHardwareID.Tables["hardtyp"];
			DataRow aRowHardwareID = dtHardwareID.Rows[0];
			string strtyp = aRowHardwareID["hardWareTyp"].ToString();
			
			// Füllen der Textfelder
			textBox3.Text = strhersteller;
			textBox4.Text = strtyp;

			
		
		}

Mir kommt es sehr aufwendig vor, hab ich viel Unnötiges Programmiert? Bin ja noch totaler anfänger g

Und zum Schluss, noch ein Bild wie das ganze aussieht 🙂

11.04.2006 - 10:09 Uhr

Danke fürs testen, wollte es gestern Abend noch schnell auf meinem mini testen, war aber dann doch zu müde 🙂

MFG

10.04.2006 - 12:02 Uhr

Danke jetzt funktioniert es...eigentlich ganz einfach, aber irgendwie bin ich wohl zu blöd für die Onlinehilfe...

10.04.2006 - 11:49 Uhr

Funktioniert leider nicht. Bekomme folgende Fehlermeldung:
In der Try Catch:
Fehler Falscher Syntax in der nähe des LIKE Schlüsselwortes

In VB:
Eine nicht behandelte Ausnahme des Typs 'System.ArgumentException' ist in system.windows.forms.dll aufgetreten.

Zusätzliche Informationen: Untergeordnete Liste für das Feld 'mitarbeiter' konnte nicht erstellt werden.

MFG

10.04.2006 - 11:34 Uhr

Funzt es auch mit Firefox auf dem Mac?

10.04.2006 - 11:31 Uhr

Hi ich hab folgendes Problem.

Ich hab eine SQL Tabelle mit Mitarbeitern, diese sollen in einem Datagrid ausgegeben werden, das Funktioniert auch so weit.
Allerdinsg möchte ich nur bestimmte Datensätze ausgeben. Dazu habe ich mir ein Textfeld gemacht wo man den Nachnamen angeben kann. Danach mache ich ein SQL Command und lade die daten in mein Dataset.
Wenn ich jetzt den ganzen Nachname angebe funktioniert das auch sehr gut, nur soll es auch funktionieren wenn ich nur den halben Namen angebe.
Leider bekomm ich das mit der Wildcard nicht auf die reihe.

Hier mal ein wenig Code

 
{
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM mitarbeiter WHERE Nachname = @Nachname", sqlConnection1);
			da.SelectCommand.Parameters.Add("@Nachname", SqlDbType.VarChar,30).Value = nachname.Text;
			DataSet ds = new DataSet();
			try
			{
				
				sqlConnection1.Open();
				da.Fill(ds, "mitarbeiter");
				da.Fill(dsmitarbeiter, "mitarbeiter");

				sqlConnection1.Close();
			
			
			
			}
			catch (Exception ex)
			{
				MessageBox.Show("Fehler " + ex.Message, "Fehler", MessageBoxButtons.OK,MessageBoxIcon.Error);
			}

			dataGrid1.SetDataBinding(ds, "mitarbeiter");
					
		}


Hoffe ihr könnt mir helfen.

MFG

30.03.2006 - 19:29 Uhr

Am einfachsten ist es wenn du den DataAdapter per Assi machen lässt, der erzeugt dir dann die richtigen Commands.

Wie genau meiner Aussieht kann ich im Moment nicht sagen, da ich erst in 2 Wochen wieder an meiner Entwicklungsumgebung im Betrieb kann. Im Moment hab ich nämlich frei und bereite mich auf meine Microsoft Prüfung zum MCSA vor (70-290 falls es dir was sagt).

MFG

29.03.2006 - 22:17 Uhr

@ Janos
Hi ich hatte das gleiche Problem, nur mit MSSQL und C#.

Ich habe mir eine SQLConnection geschrieben und hab über den Assi ein SQLDataAdapter erstellt, danach habe ich mir ein DataSet geschrieben. Ich konnte wunderbar Daten in die Datenbank schreiben, nur änderungen und löschanfragen wollte er nicht bearbeiten. Habe mit dem Comandbuilder gearbeitet, hat alles nix genutzt.

Mein Problem war das ich kein Primärschlüssel in der Tabelle die ich bearbeiten wollte gesetzt habe. Danach hat es ohne Probleme geklappt.

Hast du ein Primärschlüssel vergeben?

MFG

28.03.2006 - 22:09 Uhr

Original von blackcoin
kannste nicht einfach 'like' verwenden?

mfg

Nee funzt leider nicht, habe ich auch schon versucht. MFG

28.03.2006 - 14:35 Uhr

Original von blackcoin
hi

natürlich hättest du die methoden ausimplentieren müssen

mfg

Hab ich Versucht, aber entweder bin ich zu unerfahren...oder ich hab mich mal wieder vertippt. Passiert mir voll oft...

EDIT:

Eine Frage hätte ich noch, wie bau ich ne Wildcard in die Abfrage ein. Im moment muss man den korrekten und vollen Nachname Tippen, damit es zu einem Sucherfolg kommt. Das ist nicht gerade komfortabel.

MFG

28.03.2006 - 14:20 Uhr

Sorry leute, hat sich erledigt. Ich hab mich nur beim Parameternamen vertippt. Jetzt geht es. MFG

28.03.2006 - 13:56 Uhr

@ blackcoin
Leider klappt so gar nix...

Ich habs jetzt mal so versucht (so stand es in einem Buch)...


private void button1_Click(object sender, System.EventArgs e)
		{
			SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM mitarbeiter " +
				"WHERE Nachname = @Nachmame", sqlConnection1);
			da.SelectCommand.Parameters.Add("@Nachname", SqlDbType.Char).Value = nachname.Text;
			DataSet ds = new DataSet();
			try
			{
				
				sqlConnection1.Open();
				da.Fill(ds, "mitarbeiter");
				

				sqlConnection1.Close();
			}
			catch (Exception ex)
			{
				MessageBox.Show("Fehler " + ex.Message, "Fehler", MessageBoxButtons.OK,MessageBoxIcon.Error);
			}

			dataGrid1.SetDataBinding(ds, "mitarbeiter");
				
		}

Allerdings bekomm ich so ne Fehlermeldung das die Variable '@Nachname' deklariert werden muss.

Wie mach ich das? Leider steht das nämlich nicht im Buch oder ich bin zu blind.

MFG

28.03.2006 - 11:16 Uhr

Original von dArignac
Na du machst entsprechend deiner Parameter eine neue Anfrage an die DB.
Direkt im DS filtern geht nicht.

Und wie mach ich das? Sorry kenn mich noch nicht wirklich mit VS2003 und C# aus.

28.03.2006 - 11:07 Uhr

Hi Leute ich bin neu und noch recht unerfahren und ich habe ein Problem - wer hätte das Gedacht 🙂

Ich habe eine MSSQL Datenbank (MSDE) und möchte von der Datenbank nur bestimmte Daten in ein Dataset holen.

Konkret habe ich eine Mitarbeiter Tabelle in der Ein Index (Primärschlüssel) und der Vor- und der Nachname drin stehen. Ich möchte nun eine Suchmöglichkeit Programmieren die nach dem Nachnamen sucht (den man in ein Textfeld eingibt.
Das ganze soll dann in einem Datgrid angezeigt werden (Databinding mit VS2003 auf dem Datagrid eingestellt)

Ich hoffe jemand kann mir helfen.

MFG