3 Stimmen

asp.net mvc tutorial projekt

Ich habe einige Probleme, den Code aus dem Buch "Pro ASP.NET MVC Framework" zum Laufen zu bringen. Ich bin auf Seite 96 für diejenigen, die durch dieses Buch vor gearbeitet haben kann. Wenn ich den Code ausführe, erhalte ich die folgende Meldung:

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: 

Mein gesamter Code wird fehlerfrei erstellt und scheint mit dem Buch identisch zu sein. Allerdings kann ich nicht bekommen, dies zu arbeiten. Ich bin ein alter Schule asp Kerl, so dass dies alles neu für mich ist.

4voto

David Punkte 23860

Der Fehler liegt in der Datenbank. Entweder verweist die von Ihnen angegebene Verbindungszeichenfolge auf die falsche Datenbank, oder in der von Ihnen verwendeten Datenbank fehlt die Tabelle "Products", die dort vorhanden sein sollte.

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

0voto

Problem gelöst!

David, du hast mir die richtige Richtung gewiesen... Danke!

Ich habe in meiner Verbindungszeichenfolge Folgendes ausgetauscht:

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

Für das unten stehende und es funktioniert jetzt.

NEU: Datenquelle=. \SQLEXPRESSADV Initial Catalog=SportsStore;Integrierte Sicherheit=True;Pooling=False

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X