Maerad Geschrieben 4. Dezember 2012 Geschrieben 4. Dezember 2012 Hallo Leute, soll für meinen Betrieb eine Intranetseite in ASP.NET machen. Mit Anmeldefunktion um bei den News Einträge vornehmen zu können, einer dynamischen Navigation und eine Geräteverwaltung soll ebenfalls dabei sein. Soweit steht eig auch schon alles, dank der Vorgaben von Visual Studio, allerdings würde ich das ganze noch gern individueller gestalten und aufgrund der Geräteverwaltung auch mit einer Datenbank verbinden. Kann mir jemand eine Internetseite empfehlen auf der so etwas gut und relativ kompakt beschrieben ist? Hab schon bei google gesucht, allerdings vergeblich. Würde mich über antworten freuen. Mit freundlichen Grüßen Maerad Zitieren
Pixie Geschrieben 4. Dezember 2012 Geschrieben 4. Dezember 2012 Getting Started with EF : The Official Microsoft ASP.NET Site Zitieren
Maerad Geschrieben 6. Dezember 2012 Autor Geschrieben 6. Dezember 2012 Hey Leute Inzwischen hab ich schon ein bisschen was hin bekommen Bin gerade dabei und versuche mich an einer Datenbank via Entity Framework, allerdings kommt bei mir immer eine Fehlermeldung. Da das Tutorial an dem ich gerade dran bin auch auf Englisch ist verstehe ich nicht alles. Arbeite dieses Tutorial durch: Entity Framework 4.0 and ASP.NET Und bei dem Punkt "Creating the Database" steht ziemlich am Anfang sowas wie %PROGRAMFILES%\... und ich weiß nicht wofür das ist bzw wo ich das einsetzen muss. Ich denke mal das mir da irgendwas fehlt das ich dann später eine Fehlermeldung bekomme. Arbeite übrigens mit Visual Studio 2010. Wär super wenn ihr mir ein deutsches Tutorial vorschlagen könntet oder evtl kurz die wichtigsten Dinge erklärt die man beim Erstellen einer solchen Datenbank beachten muss. Danke im vorraus Zitieren
Pixie Geschrieben 6. Dezember 2012 Geschrieben 6. Dezember 2012 %PROGRAMFILES% ist eine Umgebungsvariable und meint in den meisten Fälllen c:\Programme bzw C:\Program Files (x86), also den Ordner in Deinem Windows, wo Programminstallationen vorgenommen werden. Da dieser Ordner theoretisch bei jedem PC woanders liegen kann (wenn jemand die standardeinstellungen verändert hat), steht dieser Pfad als Variable in der Registry. %PROGRAMFILES%\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA ist also bei Dir vermutlich c:\Programme\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA \Data ist der Ordner, an dem für die jeweilige Instanz pro Datenbank die Dateien abgelegt werden. Zitieren
Maerad Geschrieben 10. Dezember 2012 Autor Geschrieben 10. Dezember 2012 Da es jetzt mit einem anderen Tutorial geklappt hat und alles funktioniert stellt sich mir jetzt die nächste Frage, worauf ich bei google einfach keine leicht verständliche Lösung finde. Und zwar geht es um das schreiben in die Datenbank. Kann mir jemand erklären wie das bei ASP.NET/C# funktioniert? Danke schonmal für eure Hilfe. Freundliche Grüße Maerad Zitieren
wuaschtsalod Geschrieben 3. Februar 2013 Geschrieben 3. Februar 2013 Hallo Maerad, es ist zwar schon etwas länger her seit du das letzte mal geschrieben hast und du bist auch sicherlich schon weiter gekommen... Sollte ich deine Frage richtig verstanden haben hier meine Erklärung: Als erstes solltest du den ConnectionString in deiner Web.config datei einbauen Hier hast du mal eine als Beispiel: <?xml version="1.0" encoding="utf-8"?> <!-- Weitere Informationen zum Konfigurieren der ASP.NET-Anwendung finden Sie unter http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <appSettings> <add key="ConnectionString" value="Server=****;Database=****;User Id=****;Password=****;"/> </appSettings> </configuration> **** musst du natürlich anpassen... Um nun auf deine Datenbank zugreifen zu können musst du erst einmal eine Verbindung herstellen, ich habe mir dafür eine Methode in einer Hilfsklasse geschrieben, so behält man leichter den Überblick und muss nicht immer so viel schreiben Hier erstmal der Code: public static DataSet Query(string Query){ string constr = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]; SqlConnection con = new SqlConnection(constr); con.Open(); DataSet ds = new DataSet(); SqlDataAdapter adapter = new SqlDataAdapter(Query, con); adapter.Fill(ds); con.Close(); return ds; } constr ist der ConnectionString, bzw der Aufruf des ConnectionStrings. Um allerdings eine Verbindung her zu stellen benötigt man noch ein Objekt SqlConnection in meinem Beispiel ist das con. Als nächstes öffnest du die Verbidung, erstellst ein DataSet ds indem später die Ergebnisse gespeichert werden. Außerdem erstellenw ir noch einen SqlDataAdapter diesem übergeben wir den Query und die SqlConnection con. Danach muss man ledeglich das DataSet vom SqlDataAdapter füllen lassen und die Verbindung wieder beenden. Den Rückgabewert natürlich nicht vergessen Wie du bestimmt bemerkt hast übergebe ich der Funktion einen String Query, wie der Name schon sagt ist das der Query den wir an der Datenbank ausführen. Ich benutze eine SQL - Datenbank und ein möglicher Aufruf sieht bei mir so aus: try { DataSet ds = Utilities.Query("Select * from Posts"); if (ds.Tables[0].Rows.Count > 0) { return ds; } return 0; } catch (Exception) { return 0; } Beim Funktionsaufruf muss lediglich ein DataSet erstellt werden und dann ruft man nur noch die Klasse (in diesem Beispiel Utilities) und dann die Funktion (in diesem Beispiel Query) auf, übergibt ihr den SQL-Query und macht damit was man gerade will Ich prüfe ob der Rückgabewert überhaupt etwas enthält... Ich hoffe du konntest mir folgen, falls nicht oder du noch Fragen hast, nur zu MfG wuaschtsalod Zitieren
Pixie Geschrieben 3. Februar 2013 Geschrieben 3. Februar 2013 Als erstes solltest du den ConnectionString in deiner Web.config datei einbauen Hier hast du mal eine als Beispiel: <?xml version="1.0" encoding="utf-8"?> <!-- Weitere Informationen zum Konfigurieren der ASP.NET-Anwendung finden Sie unter http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <appSettings> <add key="ConnectionString" value="Server=****;Database=****;User Id=****;Password=****;"/> </appSettings> </configuration> **** musst du natürlich anpassen... In dem Beispiel fehlt der Provider. Verwendet man das EntityFramework, ist der ProviderConnectionString außerdem noch durch den des EF gekapselt. Um nun auf deine Datenbank zugreifen zu können musst du erst einmal eine Verbindung herstellen, ich habe mir dafür eine Methode in einer Hilfsklasse geschrieben, so behält man leichter den Überblick und muss nicht immer so viel schreiben Hier erstmal der Code: public static DataSet Query(string Query){ string constr = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]; SqlConnection con = new SqlConnection(constr); con.Open(); DataSet ds = new DataSet(); SqlDataAdapter adapter = new SqlDataAdapter(Query, con); adapter.Fill(ds); con.Close(); return ds; } Bei MSSQL heißt es 'Initial catalog' statt 'database' und 'Data source' statt 'server'. Beim Funktionsaufruf muss lediglich ein DataSet erstellt werden und dann ruft man nur noch die Klasse (in diesem Beispiel Utilities) und dann die Funktion (in diesem Beispiel Query) auf, übergibt ihr den SQL-Query und macht damit was man gerade will Warum so umständlich? Es ist zwar zu Anschauungszwecken nicht verkehrt, etwas auch mal zu Fuß zu programmieren (dann würde ich aber vielleicht noch weiter unten beim SQLReader ansetzen), aber der kürzere Weg geht direkt über Objekte mittels EF oder Linq. Die eigentliche Frage betraf aber nicht das Lesen, sondern das Schreiben. Der Weg mittels Dataset ist in den Artikeln unterhalb von Saving Data beschrieben. Bei Verwendung mit EF über databound Controls reicht es, den EntityDataSources die entsprechenden Funktionen zu ermöglichen: EnableInsert, EnableUpdate auf True setzen und die Insert und Update-Funktionen der Controls verwenden. Sollen im Code behind andere CRUD-Operationen ausgeführt werden, werden Änderungen mittels SaveChanges persistiert. Erstellen, Hinzufügen, Ändern und Löschen von Objekten (Entity Framework) Zitieren
wuaschtsalod Geschrieben 3. Februar 2013 Geschrieben 3. Februar 2013 Hm... ich muss zu geben dein Lösungsansatz erscheint mir dann sinnvoller, muss mich wohl doch mal wieder etwas mehr einlesen... Bei meinem oben präsentierten Beispiel war es leider nicht möglich mit Linq zu arbeiten, desshalb ist mir mein Weg am Sinnvollsten erschienen, aber man lernt ja nie aus Danke und MfG wuaschtsalod Zitieren
Pixie Geschrieben 3. Februar 2013 Geschrieben 3. Februar 2013 (bearbeitet) Unter Data Development Videos und Creating an Entity Data Model from a Database ff. gibt es einige Videos zum Thema EF. Bearbeitet 3. Februar 2013 von Pixie Zitieren
SilentDemise Geschrieben 4. Februar 2013 Geschrieben 4. Februar 2013 wie groß soll das ganze denn werden? EF skaliert sehr bescheiden. Zitieren
SeToY Geschrieben 4. Februar 2013 Geschrieben 4. Februar 2013 Hmmm also ich habe schon Enterprise Applications mit EF 4 und 5 entwickelt und hatte bis jetzt keine Probleme. Sent from my HTC Sensation XE with Beats Audio Z715e Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.