Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Daten aus SQL Server holen und Auswahl wieder zurückschreibe


MickeyMaus - Do 21.08.08 10:01
Titel: Daten aus SQL Server holen und Auswahl wieder zurückschreibe
Hallo,

ich bin grad dabei mich in C# einzuarbeiten und habe eine Frage. Ich möchte einen Webservice schreiben der es ermöglicht Daten aus einem InfoPath Formular in eine SQL Server DB zu schreiben. Mein Problem ist nun dass ich zwar eingegebene Daten aus der Textbox in die DB schreiben kann aber nicht weiß wie ich eine Auswahl aus der Listbox (Daten aus Listbox sind aus der gleichen DB) zurückschreiben kann.
Bin dankbar um jeden Hinweis!


lothi - Do 21.08.08 11:11

Hallo MickeyMaus

Jetzt hast du uns schön erklärt was du gerne machen willst aber nicht was nicht funktioniert.

Das auslesen einer Listbox? Wenn ja was hast du versucht?
Das speichern in die DB? Wenn ja was hast du gemacht?

Gruss Lothi


MickeyMaus - Do 21.08.08 12:53

Ich weiß nicht wie ich grundsätzlich vorgehen muss. Alle Werte aus den Listboxen sind mit Name und ID in der DB hinterlegt. Für den in der Listbox ausgewählten Namen soll die dazugehörige ID in eine andere Tab der DB zurückgeschrieben werden. Meine Überlegung: Ich definiere eine Methode GetData mit Parameter name, mache für alle Namen SELECTs auf die entsprechenden Tabellen und bekomme somit die IDs geliefert. Dann definiere ich eine zweite Methode die die abgefragten IDs in eine andere Tabelle zurückschreibt. Ist es sinnvoll das so zu machen oder gibt es eine bessere Lösung?


lothi - Do 21.08.08 13:17

Ich verstehe immer noch nicht wo das Problem liegt und was du machen willst.
Einmal schreibst du:
Zitat:

Listboxen sind mit Name und ID in der DB hinterlegt


und dann wieder

Zitat:

mache für alle Namen SELECTs auf die entsprechenden Tabellen und bekomme somit die IDs geliefert


Mit einer SQL UPDATE Anweisung kannst du doch die ausgewählten ID in die gewünschte Tabelle schreiben.
Stichwort: SqlDataAdapter

Gruss Lothi


MickeyMaus - Do 21.08.08 13:55

In den Listboxen wähle ich nur die namen (bezeichnungen) aus, zurückschreiben will ich aber die ID, d.h. ich muss mir die IDs zu den entsprechenden Namen ja erst aus der DB holen damit ich sie zurückschreiben kann. Meine Frage: Wie gehe ich am besten vor?


lothi - Do 21.08.08 14:23

Vermutlich kann man mehrere Namen auslesen.

Ich würde jetzt eine Klasse erstellen DatenHolen oder so.

Die Klasse enthält eine Eigenschaft List <string> Namenliste;
Die Klasse nicmmt die Verbindung zu Datenbank auf und stellt deinen SQL Code mit Namenliste zusammen.

SQL-Anweisung
1:
SELECT ID FROM tbl WHERE name IN(Namenlist[0], Namenliste[1])                    


Als Rückgabe aus der Klasse an die Form nimmst du dann ein Dataset welches die ID von der Abfragen enthält.

So hast du das ganze schön unabhängig vom Formular und kannst die Klasse anderweitig auch noch benutzen.

Gruss lothi