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.




SQL - Datenbank - Abfrage

Unbeantwortet Dieser Beitrag hat 13 Antworten

Ohne Rang
68 Beiträge
Script1 erstellt 5 Nov. 2012 15:34
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich habe mal eine kleine Frage und zwar möchte ich eine Sharepoint - Seite so aufbauen, dass ich ein Textfeld + Button habe, wo ich z.B. nach einem Begriff suchen kann, welcher dann aus der SQL - Tabelle ausgelesen wird. Ist dies generell möglich und wenn wie ;) ?

 

Danke & Gruß

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 5 Nov. 2012 16:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Willst Du damit in einer eigenen Datenbank etwas suchen oder in SharePoint? In SharePoint ist nämlich eine wunderbare Suchfunktion eingebaut...

Falls es um eine eigene Datenbank geht, kannst Du sie entweder per Business Connectivity Service einbinden oder ein eigenes Webpart mit Visual Studio programmieren. Für weitere Informationen benutze die Suchmaschine Deiner Wahl.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
68 Beiträge
Script1 Als Antwort am 5 Nov. 2012 16:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also ich will damit in einer eigenen MS SQL - Datenbank suchen. Eingebunden ist sie bereits nur wie bekomme ich es nun hin, dass ich eine Abfrage erstellen kann, die einen Wert aus einem Textfeld in der DB sucht? 

Rein theoretisch muss ich ja nur dem "SelectCommand" sagen: "SELECT * FROM Tabelle WHERE Name=Textfeld"

 

Gruß

Ohne Rang
120 Beiträge
turrican 72 Als Antwort am 6 Nov. 2012 07:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wie mein Vorredner schon bemerkte, gibt es hierfür den Business Connectivity Service bzw. die externen Inhaltstypen (funktionieren in SharePoint Server 2010 und der Foundation). Im SharePoint Designer erstellt man eine Verbindung zu der gewünschten Datenbank (idealerweise ein MS SQL-Server DB).

Anschließend erstellt man einen neuen externen Inhaltstyp, welcher die gewünschten Daten aus de DB abfragt. Die Ergebnismenge kann man dann als SharePoint Liste darstellen, Elemente aufrufen und sogar Änderungen in die DB zurück schreiben.

Das ganze ist aber nicht trivial, ich selber habe Monate benötigt, bis ich es hinbekommen habe - also ist das nicht mal eben hier im Forum erklärt.

Damit das ganze dann reibungslos funktioniert, muss man noch Kerberos als Anmeldesicherheit verwenden - dadruch wird es noch einmal komplizierter (Ein paar Stichworte: SharePoint Application Pool Konto, Double Hopp Problem etc.).

Ggf. haben hier die Experten noch einen Linkverweis für Dich...

Ohne Rang
30 Beiträge
Mygil Als Antwort am 6 Nov. 2012 12:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo!

Für mich ist BCS und Kerberos nach wie vor noch Neuland (Bzw. fällt unter Kategorie: Ungelöst)
Dennoch habe ich mir für ein ähnliches Szeanrio folgende Lösung mit meinem vorhandenen Wissen geschnitzt:
Und zwar habe ich im VS2010 einen neuen WebPart erstellt der lediglich einen Button und eine Liste beinhaltet.

Code des Button: 
      protected void ButtonAnzeigen_Click(object sender, EventArgs e)
        {
            this.ListBox1.Items.Clear();

            SqlConnection con = new SqlConnection(@"Data Source=SERVER\SqlExpress;Initial Catalog=DATENBANK;User Id=USER;Password=PASSWORD;");
            SqlDataAdapter da = new SqlDataAdapter("EXEC dbo.sp_UmfrageMitarbeitergespräch", con);
            DataSet ds = new DataSet();

            con.Open();
            da.Fill(ds, "Mitarbeitergespräch1J");
            con.Close();

            foreach (DataRow row in ds.Tables["Mitarbeitergespräch1J"].Rows)
            {
                ListItem item = new ListItem();
                string szDatum = (row["Datum"].GetType() == typeof(DateTime)) ? ((DateTime)row["Datum"]).ToShortDateString() : "";
                item.Text = (szDatum)
                    + " (" + row["PersNr M"]
                    + " " + row["Vorname M"]
                    + " " + row["Nachname M"]
                    + ") " + row["Funktion M"]
                    + " (" + row["PersNr V"]
                    + " " + row["Vorname V"]
                    + " " + row["Nachname V"]
                    + ")"
                    ;
                item.Value = row["id"].ToString();
                this.ListBox1.Items.Add(item);
            }
        }

Aber ich glaube, dass die SharePoint-Profis von dieser Vorgehensweise eher abraten würden - oder??
Irgendwie habe ich das Gefühl, dass meine Lösung nicht dem für SharePoint vorgesehen Weg entspricht und stattdessen die BCS eingetzt werden sollten. Daher meine Tipp bitte mit Vorsicht geniesen!

lg myGil

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Nov. 2012 12:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist durchaus eine Möglichkeit, wie man externe Daten in SharePoint einbringen kann. Mal abgesehen davon, daß ich niemals User und Passwort fest im Code hinterlegen würde ;-)

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
68 Beiträge
Script1 Als Antwort am 21 Nov. 2012 15:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also ich habe mir jetzt einen "Externen Inhaltstyp" erstellt. Nur wie kann ich jetzt eine Seite erstellen (ähnliche wie das Webpart), wo ich ein Textfeld habe und einen Button, der beim drauf klicken nach dem Suchwort aus dem Textfeld sucht?

 

Gruß  

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 21 Nov. 2012 16:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dazu müssen für den externen Inhaltstyp passende Filteraktionen definiert werden (z.B. per SharePoint Designer). Dann geht das wie bei jeder SharePoint-Liste.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 21 Nov. 2012 16:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Eine andere Möglichkeit ist, den externen Inhaltstyp in die Suche von SharePoint Server einzubeziehen (in der Suchadministration eine neue Inhaltsquelle erstellen). Man kann dann die ganz normale Suchfunktion benutzen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
68 Beiträge
Script1 Als Antwort am 26 Nov. 2012 16:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Soo habe jetzt nach folgender Anleitung die Liste, etc mal konfiguriert. (http://lightningtools.com/business_connectivity_services/creating-comparison-and-wildcard-filters-for-bcs-in-sharepoint-designer-2010/)

Jetzt komme ich an einer Stelle nicht weiter und zwar möchte ich ein "Buisness Data List" - Webpart einfügen nur fehlt mir dieses in der Liste. Nach etwas suchen im Internet habe ich festgestellt, dass dieses noch installiert werden muss mittels Powershell - Command. Nur erhalte ich hier jedes mal eine Fehlermeldung..vielleicht weiß ja einer von euch hier weiter (btw. bin kein ps experte ;p):

PS C:\Users\administrator> Install-SPFeature "BizAppsSiteTemplates" -force

Und die Fehlermeldung:

Die Benennung "Install-SPFeature" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.

Bei Zeile:1 Zeichen:18

+ Install-SPFeature <<<<  "BizAppsSiteTemplates" -force

    + CategoryInfo          : ObjectNotFound: (Install-SPFeature:String) [], CommandNotFoundException

    + FullyQualifiedErrorId : CommandNotFoundException

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Nov. 2012 17:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du hast offenbar eine normale PowerShell verwendet. Nimm die aus dem Startmenü in der SharePoint-Gruppe, damit auch die SharePoint-Befehle verfügbar sind.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
68 Beiträge
Script1 Als Antwort am 27 Nov. 2012 09:04
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

:D sry mein Fehler ;)

Ok also die Befehle nimmt er nun an und ich konnte den "Install"-Befehl erfolgreich absetzen. Allerdings wollte ich es dann im Anschluss aktivieren und da bekomme ich die Fehlermeldung: "Enable-SPFeature : Das Feature 'BizAppsSiteTemplates' (ID: 4248e21f-a816-4c88-8cab-79d82201da7b) wurde bereits im Bereich 'URL' aktiviert." Doch ich kann es nirgends in der Auswahl finden :( Muss dafür noch einen Dienst anderer gestartet werden?

Ohne Rang
68 Beiträge
Script1 Als Antwort am 9 Jan. 2013 09:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hat noch wer eine Idee???

Ohne Rang
391 Beiträge
Frank Daske Als Antwort am 21 Nov. 2012 17:16
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Noch einfacher gehts mit 3rd party apps die letztlich die (ganze) Tabelle in eine SharePoint Liste "spiegeln" und automatisch aktuell halten. Die SharePoint Suche (und auch alles andere) funktioniert dann ganz automatisch:

So gehts: http://www.youtube.com/watch?v=yEUeLtIA84c

Allerdings muss man dann nichts mehr programmieren ;-)))

MfG Frank