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

SQL - Datenbank - Abfrage

bewertet von 0 Usern
Nicht beantwortet Dieser Beitrag hat 0 Geprüfte Antworten | 13 Antworten | 3 Followers

Top-200-Beitragsschreiber
68 Beiträge
Script1 erstellt in 5 Nov 2012 15:34

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

Top-10-Beitragsschreiber
19.061 Beiträge

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
Top-200-Beitragsschreiber
68 Beiträge

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ß

Top-100-Beitragsschreiber
120 Beiträge

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...

Top-500-Beitragsschreiber
30 Beiträge

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

Top-10-Beitragsschreiber
19.061 Beiträge

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
Top-200-Beitragsschreiber
68 Beiträge

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ß  

Top-10-Beitragsschreiber
19.061 Beiträge

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
Top-10-Beitragsschreiber
19.061 Beiträge

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
Top-25-Beitragsschreiber
391 Beiträge

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

  • Gespeichert unter:
Top-200-Beitragsschreiber
68 Beiträge

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

Top-10-Beitragsschreiber
19.061 Beiträge

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
Top-200-Beitragsschreiber
68 Beiträge

: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?

Top-200-Beitragsschreiber
68 Beiträge

Hat noch wer eine Idee???

Seite 1 von 1 (14 Elemente) | RSS