2009-08-12 9 views
-2

Ich habe eine asp.net MVC-Anwendung, und ich muss connecto mit der DB Ich habe ein Tutorial-Video gesehen, die Verbindung zur DB mit Assistenten durch Hinzufügen von DB-Verbindung und bestimmen Sie die DB und ein Modell hinzufügen, aber ich müssen Sie wissen, ob ich Verbindungszeichenfolge verwenden und die DB oder aufrufende Prozeduren in DB abfragen kann ???verbinden mit DB mit MVC

Ich brauche Tutorials oder Schritt für Schritt Artikel, die beschreiben, wie Sie eine Verbindung zur Datenbank ohne Assistenten und Aufruf-Prozeduren und Abfragetabellen herstellen.

Vielen Dank im Voraus und ich bin ein begineer in MVC

+0

Verwenden Sie eine OR/M wie SubSonic, LINQ to SQL, NHibernate, etc? Siehe meine Antwort unten für weitere Details. – andymeadows

+0

Ahmy - Kennen Sie den Zugriff auf Datenbanken über Code (anstelle eines Assistenten)? Wenn Sie normalerweise einen Assistenten für alles verwenden, ist ASP.NET MVC möglicherweise nicht Ihre Tasse Tee. Wenn Sie sich mit den verschiedenen Layern nicht wohl fühlen, sollten Sie den gesamten Code für eine Beispielanwendung in Ihre Controller-Klassen einfügen. Auch wenn es MVC heißt, brauchen Sie nur den Controller und View, um eine effektive Demo zu erstellen. –

Antwort

1

Ja, Sie können (ado.net für Tutorials auf ado.net Google), aber es ist nicht das MVC-Weg. Der MVC-Weg besteht darin, eine Art von ORM (Object-relationales Mapping) wie NHibernate, Subsonic oder Linq for SQL zu verwenden.

+1

ein ORM oder irgendeine Art von Middleware zu verwenden ist nicht das MVC-Weg, es ist die Art und Weise faul ist (und ich benutze sie, weil ich möchte regelmäßig ado.net nicht codieren up). – Min

+0

U hat es falsch was ich brauche ist zu wissen, wo die Verbindungszeichenfolge ist es in der web.config wie die Vergangenheit? und zweitens, wie kann ich eine Prozedur vom Modell aufrufen und die resultierenden Daten erhalten? ich weiß nicht, wie man das in mvc macht und nicht wie man auf DB zugreift !!! u meine Frage falsch verstanden, ich habe diese und keine explizite Antwort von gegoogelt, wo Sie den Code setzen, die DB zugreifen und wie kann ich die resultierenden Daten erhalte im Hinblick – Ahmy

0

Sie können Ihre Verbindungszeichenfolge wie gewohnt in die Konfiguration einfügen.

Sie können Prozeduren genauso aufrufen, wie Sie es auch von jeder .Net-Anwendung gewohnt sind. Der Ratschlag von svinto, ein ORM zu verwenden, ist eine andere Art, Dinge zu tun, und es lohnt sich, sie auch zu betrachten. Viele der guten Beispiele für ASP.Net MVC verwenden die ORM-Techniken.

Wenn Sie diese Route nicht verwenden möchten, können Sie ein separates Klassenbibliotheksprojekt erstellen, auf das Sie in Ihrer MVC-Anwendung verweisen. Ihr Klassenbibliotheksprojekt kann als Ihr Datenzugriffslayer (DAL) fungieren, in dem Sie DB-Aufrufe usw. behandeln.

Ihre Controller können dann Ihre DAL- und Verarbeitungsmethoden aufrufen, um Entitäten für die Ansichten zu füllen.

+0

Dank zeigte werden mr.grenade aber nach der Verbindungszeichenfolge im Web setzen .config Wie kann ich meine Prozeduren vom Modell aufrufen? Muss ich eine Klasse hinzufügen, die Methoden zum Aufrufen von Prozeduren enthält? Wenn das, was ich denke, richtig ist und ich eine Klasse im Modellordner erstellt habe, wie kann ich dann den Controller diese Klasse anrufen lassen und Daten erhalten und sie an die anzuzeigende Ansicht übergeben? wirklich bin ich zu verwirrt und ich hasse MVC in dem Anfang, weil weniger Hilfe in diesem Thema – Ahmy

+0

Wenn Sie die einfachere Seite des Lebens genießen wollen, würden Sie wirklich gut, den Rat in Post @ svinto zu folgen. – grenade

+0

Nein, ich muss wissen, wie Prozedur vom Modell aufgerufen wurde, war meine Gedanken richtig bei der Erstellung einer Klasse, die Methoden DB-Prozeduren aufrufen? Bitte ich brauche explizite Hilfe nicht zu lachen meine Arbeit brach zusammen und ich weiß nicht, wie ich hoffe, dass Sie verstehen, was ich brauche – Ahmy

0

Ahmy, ich denke, der beste Rat zu geben wäre, bevor Sie beginnen mit dem MVC-Framework zu entwickeln, ist ein Blick in die Prinzipien hinter dem MVC-Muster und domain-getriebenen Design.

Insbesondere haben einen Blick auf Repository-Muster usw.

Sie können immer noch Verbindungszeichenfolgen zu Ihrer web.config in einem Block hinzufügen und auf sie zugreifen, wie Sie in einem webforms Projekt getan hätte, nachdem alle Asp.net MVC basiert auf Webforms. Es ist sehr wahrscheinlich, dass Sie das nicht wirklich tun würden, wenn Sie MVC so verwenden, wie es beabsichtigt war, es geht nur um die Trennung von Bedenken.

www.asp.net hat einige großartige Intro. Beispiele, die sich sehen lassen.

+0

Ich habe Videos von dort heruntergeladen und sah es wie ich in meiner Frage erwähnt, aber sie verbinden DB durch den Assistenten durch Erstellen von DB und Hinzufügen von Tabelle mit Datensätzen und Abfragen dieser Datensätze, aber was ich brauche, ist, dass die DB bereits existiert und ich Prozeduren aufrufen muss und nicht wissen, wie das im Modell zu tun und wie die Daten erhalten vom Modell in Controller, um es in die entsprechende Ansicht zu setzen ?????? danke für deine Aufmerksamkeit hoffe, dass du mir bitte antworten wirst, weil ich von MVC gelangweilt bin – Ahmy

+0

Mehr als wahrscheinlich alle Videos, die du angeschaut hast, benutzen das Linq zu SQL ORM Tool, wie oben erwähnt. Wenn Sie Visual Studio haben, können Sie das gleiche tun. Verwenden Sie den Server-Explorer, um auf die Datenbank zu verweisen, und verwenden Sie anschließend Linq to SQL, um Ihr ORM-Modell zu erstellen. – Lewis

+0

... wenn das Problem, das Sie mit sind mit dem Design Ihres Modell und Ansichten usw. ist dann das Problem, das Sie haben nicht wirklich eine DB-Verbindung ein, und es ist am besten auf den MVC-Muster zu lesen, selbst. Ich hoffe das hilft. – Lewis

1

So stellen Sie eine Verbindung zur Datenbank ohne Assistenten und Aufrufprozeduren und Abfragetabellen her.

ein Verfahren zu nennen (hier wird es kein Ergebnis zurück, nur eine Aktion ausführen):

using (SqlConnection connection = new SqlConnection(connectionString)) 
{ 
    connection .Open(); 
    using(SqlCommand command = connection.CreateCommand(nameofthestoredprocedure)) 
    { 
     command.CommandType = CommandType.StoredProcedure; 
     command.Parameters.AddWithValue("@someparameter", somevalue); 
     maCommande.ExecuteNonQuery(); 
    } 
} 
+0

Mr.Gregoie wo soll ich diesen Code einfügen (inspit ich brauche diesen Code nicht) ???? Ich muss wissen, wie ich mit Model, View und Controller integrieren? Muss ich einen Controller erstellen und diesen Code einfügen? oder ni muss diesen Code in das Modell einfügen, nachdem er eine Klasse darin erstellt hat ???? bitte helpe mich und danke für Ihre große Aufmerksamkeit – Ahmy

+1

Sie müssen diesen Code in eine Klasse in Ihrer Datenzugriffsschicht setzen. In der Regel haben Sie: view <--> Controller <--> Repository <--> DataAccess <--> Storedproc <--> Tabelle, die Ansicht und Controller Austausch eines Modells, der Datenzugriff, Repository, Controller Austausch einiger Daten-Einheiten – Gregoire

2

ich dies zu reagieren zögern, aber jedes Video, das Sie wahrscheinlich gesehen haben, wird unter Verwendung eines OR/M um das Model und die DAL zu generieren. Die generierte DAL wird wahrscheinlich Ihre Aufrufe an die gespeicherten Prozeduren kapseln, nach denen Sie fragen.

Die Sache ist - und hier ist, warum Sie nicht die Antwort bekommen, die Sie suchen - jeder OR/M wird eine andere Methode haben, Daten aus der Datenbank abzurufen und Daten in die Datenbank einzufügen. Wie Sie Daten aus der DB mit einem OR/M abrufen, wird anders sein, wenn Sie Entity Framework, Linq zu SQL, SubSonic, NHibernate oder ein beliebiges anderes OR/M verwenden.

Also, die Frage ist für Sie. Verwenden Sie ein OR/M?Wenn ja, welcher? Wenn nicht, verwenden Sie die standardmäßigen ADO.NET-Aufrufe, um Daten abzurufen und zu speichern. Dies spiegelt sich auch in meinem Kommentar zu Ihrer ursprünglichen Frage wider.

0

Versuchen Sie, NerdDinner herunterladen, oder noch besser ... ContactManager Iteration 1 (das Tutorial beantwortet direkt Ihre Q). Diese sollten Ihnen eine gute Idee für den Umgang mit dem Datenbankzugriff geben. Ich würde nicht vorschlagen, etwas wie Oxite oder MS StoreFront zu betrachten, da diese ein bisschen komplexer sind.

speziell auf Ihre Frage zu beantworten: die Verbindungszeichenfolge, wie in ASP.NET kann in Ihrem web.config oder hartcodiert in der Anwendung gehen.

Verwandte Themen