2009-07-24 3 views
3

Ich habe einige Probleme, den Code aus dem Buch "Pro ASP.NET MVC Framework" zu arbeiten. Ich bin auf Seite 96 für diejenigen, die dieses Buch bereits durchgearbeitet haben. Wenn ich den Code ausführen bekomme ich folgende:asp.net mvc Tutorial-Projekt

System.Data.SqlClient.SqlException was unhandled by user code 
    Message="Invalid object name 'Products'." 
    Source=".Net SqlClient Data Provider" 
    ErrorCode=-2146232060 
    Class=16 
    LineNumber=1 
    Number=208 
    Procedure="" 
    Server=".\\SQLEXPRESSADV" 
    State=1 
    StackTrace: 
     at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) 
     at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) 
     at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 
     at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 
     at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() 
     at System.Data.SqlClient.SqlDataReader.get_MetaData() 
     at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) 
     at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) 
     at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) 
     at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) 
     at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) 
     at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) 
     at System.Data.Common.DbCommand.ExecuteReader() 
     at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) 
     at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) 
     at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) 
     at System.Data.Linq.Table`1.GetEnumerator() 
     at System.Data.Linq.Table`1.System.Collections.Generic.IEnumerable<TEntity>.GetEnumerator() 
     at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) 
     at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) 
     at WebUI.Controllers.ProductsController.List() in C:\Documents and Settings\adamsb1\My Documents\Visual Studio 2008\Projects\StoreSolution\WebUI\Controllers\ProductsController.cs:line 28 
     at lambda_method(ExecutionScope , ControllerBase , Object[]) 
     at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) 
     at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) 
     at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassa.<InvokeActionMethodWithFilters>b__7() 
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) 
    InnerException: 

All meine Codes erstellt ohne Fehler in Ordnung und es erscheint das Buch identisch zu sein. Allerdings kann ich das nicht zur Arbeit bringen. Ich bin ein alter Schul-Asp-Typ, also ist das alles neu für mich.

Antwort

4

Der Fehler ist in der Datenbank. Entweder fehlt die Verbindungszeichenfolge, die Sie der falschen Datenbank zugeordnet haben, oder die Datenbank, die Sie verwenden, fehlt die Tabelle "Produkte", die dort erwartet wird.

Da es so aussieht, als ob Sie eine SQLExpress-Datenbank verwenden, würde ich vermuten, dass Sie die Lernprogrammdatenbank nicht eingerichtet haben. Das Programm versucht, aus der SQLExpress-Datenbank zu lesen, die Sie bereits auf Ihrem Computer eingerichtet haben.

0

Problem gelöst!

David du hast mir in die richtige Richtung gezeigt ... Danke!

ich ausgelagert folgendes auf meine Verbindungszeichenfolge:

OLD:.. Server = \ SQLEXPRESSADV.SportsStore; Trusted_Connection = yes;“

Für die unten und es funktioniert jetzt

NEU: Datenquelle =. \ SQLEXPRESSADV; Erster Katalog = SportsStore; Integrierte Sicherheit = True; Pooling = False