SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Sharepoint Datenbank in C# Programm ansprechen

Unbeantwortet Dieser Beitrag hat 13 Antworten

Ohne Rang
6 Beiträge
Alexander P. erstellt 7 Juni 2010 09:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Erstmal ein Herzliches Hallo an alle,

Ich habe folgendes Problem und zwar, soll ich ein Programm schreiben, dass Daten aus der Sharepoint Datenbank auslesen und schreiben kann. Nur bin ich in C# noch recht neu und hab keine Ahnung wie man das machen könnte. Ich bin nur auf Splist gestossen, was aber denke ich nicht ganz das ist was ich suche.

Berichtigt mich wenn ich da falsch liege. :-P

Alle Antworten

Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 7 Juni 2010 10:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

was ahst du denn gegen das SharePoint- Object- Model? Damit kannst du doch alles machen OHNE dich in die Struktur der Datenbank zu arbeiten?!

Ohne Rang
6 Beiträge
Alexander P. Als Antwort am 7 Juni 2010 10:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Könnte ich damit den auch Daten aus der Textbox einer Windows Form in die Sharepoint Datenbank schreiben/auslesen lassen? Und wenn ja wie wäre das am einfachsten machbar?

Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 7 Juni 2010 10:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

was für eine TextBox meinst du? Bette sag genau was du vor hast :)

Ohne Rang
6 Beiträge
Alexander P. Als Antwort am 7 Juni 2010 11:34
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also es ist eigentlich ganz einfach ich werde eine Windows Form mit mehreren Textboxen erstellen und ich denke 2 Buttons (Read & Save) die dann je nachdem, Daten aus der Sharepoint Datenbank auslesen oder Daten in die Datenbank schreiben ( Das ganze soll zum Managen unserer Hardware dienen)

z.B. könnten wir in der Windows Form stehen haben:

Typ: Computer

Hersteller: XYZ

Lieferscheinnummer:*****

Datum: bla

 

und das soll dann genau so in unseren Sharepoint und man soll es auch dort sehen können.

 

Hoffe das ist verständlicher :-P

Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 7 Juni 2010 11:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

achso, du meinst quasie eigene Daten in der Datenbank ablegen :)

Versuchsmal über SPPersistedObject (http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.sppersistedobject.aspx), die liegen auf WebAnwendungsebene oder über das PropertyBag einer Webseite. Das Problem ist, nach Microsoft, dass du den Support verlierst wenn du da selber dran rumfummelst.

der sichere weg wäre dann dieser: http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spcontentdatabase.aspx

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 8 Juni 2010 09:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

SPPersistedObject eignet sich meiner Meinung nach nicht um darin größere Datenmengen abzulegen. Das ist ganz praktisch um vielleicht Konfigurationseinstellungen an einer Website zu speichern, ohne dass man dafür explizit eine eigene Liste erstellen muss. Aber die Tatsache, dass du darin ja auch nicht wirklich gezielt nach einem einzelnen Datensatz suchen kannst macht das doch gleich sehr uninteressant.

Henning Eiben
busitec.de

Ohne Rang
6 Beiträge
Alexander P. Als Antwort am 8 Juni 2010 15:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok ich danke euch ^^... Nur habe ich noch ein Problem und zwar wird beschrieben wie ich per XMLNode die Datenbank auslese... nur wie füge ich Daten in sie hinein ?

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 9 Juni 2010 08:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Warum möchtest Du denn direkt an die Datenbank?

Mir fallen spontan folgende Alternativen ein:

  1. Wenn nichts gegen die Eingabe deiner Daten im Sharepoint spricht, verwende doch den Standard. Benutzerdefinierte Liste mit entsprechenden Formularen.
  2. Schreib eine Webanwendung und benutze das Sharepoint Object Model.
  3. Muss es eine Windows Forms Anwendung sein, verwende die Sharepoint Webservices um die Daten in eine Sharepoint Liste zu schreiben.
  4. Alternativ kannst Du auch die Daten in einer eigenen Datenbank ablegen und mit dem Sharepoint Designer eine Datenansicht erstellen.
  5. Wenn eine Datenansicht nicht ausreicht, Du aber eine eigene Datenbank verwenden möchtest, schreib einen Timer Job der alle x Minuten per Sharepoint Objekt Model die Daten synchronisiert.

Also es gibt da schon Möglichkeiten. Mit Sharepoint 2010 hättest Du auch noch das Client Object Model um Daten direkt in eine Sharepoint Liste zu schreiben. Aber direkt in die Datenbank schreiben... würd ich mir zwei mal überlegen.

Ohne Rang
6 Beiträge
Alexander P. Als Antwort am 9 Juni 2010 09:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Oo... das heißt das wird eine ganzschön kompliziwerte Nummer... Und das Halsen die mir armen Kerl mit 2 Tagen C# Erfahrung auf :-P.

Ohne Rang
186 Beiträge
Benjamin Aicheler Als Antwort am 9 Juni 2010 09:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Eigentlich... nicht :) Jeder der 5 Punkte ist eine eigenständige Alternative. Also bitte nicht alles 5 machen wenn nicht benötigt. Aus meiner sicht deutlich einfacher als da in der Datenbank rumzusuchen.

Bitte beachte auch, dass Du für Punkt 1 nicht eine Zeile C# schreiben musst. Das hättest Du grundlegend in 30min zusammengeklickt.

Ich denke Du solltest Dir zuerst einmal anschauen was Sharepoint an Standardfunktionen und Schnittstellen anbietet, und dir Gedanken machen, ob Du deine Anforderung nicht mit Standard Sharepoint Mitteln umsetzen kannst.

Ich kenne natürlich Deine Anforderungen/Vorgaben etc. nicht im Detail. Du schreibst "[...] soll ich ein Programm schreiben, dass Daten aus der Sharepoint Datenbank auslesen und schreiben kann". Die Frage ist also, muss es ein selbst geschriebenes Programm werden? Muss direkt auf die Datenbank zugegriffen werden? Wenn das keine Vorgabe für dich ist, dass Du direkt auf die Datenbank zugreifen musst, dann würde ich das auch nicht tun, wenn es eine Alternative gibt.

Ohne Rang
6 Beiträge
Alexander P. Als Antwort am 9 Juni 2010 09:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich glaub ich schreib morgen mal ne Detailierte Dokumentation von meiner Aufgabe... heute bin ich nicht auf der Arbeit und komm nicht an das was ich bisher gemacht hab :P

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 9 Juni 2010 10:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Noch eine Alternative zu Punkt 4/5 von Benjamin: mit dem BDC (MOSS 2007) kannst du auch lesend auf Datenbanken zugreifen, schreiben geht da leider nicht (naja, nur mit viel tricksen).

Beim SP2010 kannst du mit den BCS und External-Lists auch schreibend auf externe Datenbanken zugreifen, wobei sich die wie ganz normale SharePoint Listen verhalten. Somit bräuchtest du weder ein DataView-WebPart noch eine TimerJob der Daten synchronisiert.

Henning Eiben
busitec.de

Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 8 Juni 2010 09:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

wie niceoldlady schon geschrieben hat, kannst du u.U. recht schnell den Support von Microsoft verlieren wenn du direkt mit der SharePoint Datenbank arbeitest. Daher würde ich dir davon dringend abraten! Zumal das Datenmodell auch nicht direkt dazu einlädt. Besser ist es da das Objekt-Modell zu verwenden.

Von Vorgehen würde ich das wie folgt machen:

  • Anlegen einer Liste im SharePoint die die Daten aufnehmen soll (inkl. eigener Spalten)
  • Einbindung der von SharePoint bereitgestellten WebServices in deine Anwendung
  • Lesen und Schreiben von Daten in deine Liste unter Verwendung der WebServices

Als Anhaltspunkt für den lesenden Zugriff kannst du z.B. folgenden MSDN-Artikel nehmen: http://www.microsoft.com/germany/msdn/solve/knowhow/howto/office/WieErmittleIchDenInhaltEinerSharePointListe.mspx.

Wichtig ist ggf. zu beachten: es gibt u.a. die von dir auch schon angesprochen Klasse SPList. Diese ist aber nur auf dem Server verfügbar, wenn du von einem anderen Client aus auf den SharePoint zugreifen willst musst du immer über die WebServices gehen.

Henning Eiben
busitec.de