2009-08-12 81 views
-2

我有一个asp.net mvc应用程序,我需要连接到数据库我已经看到一个教程视频连接到数据库使用向导通过添加数据库连接并确定数据库并添加模型,但我需要知道我是否可以使用连接字符串并查询数据库或调用DB中的过程?使用MVC连接到数据库

我需要任何教程或一步一步的文章,描述如何连接到数据库没有向导和调用过程和查询表。

在此先感谢,我在MVC

一个begineer
+0

您是否使用了OR/M如亚音速的LINQ to SQL,NHibernate的,等等?有关更多详情,请参阅下面的答案。 – andymeadows 2009-08-13 04:49:11

+0

Ahmy - 您是否熟悉通过代码访问数据库(而不是向导)?如果你通常使用向导来完成所有的事情,那么ASP.NET MVC可能不是你的一杯茶。如果你对各个层次感到不舒服,我建议把你的控制器类中的所有代码作为示例应用程序。即使它被称为MVC,你只需要Controller和View来组合一个有效的演示。 – 2009-08-13 17:15:48

回答

1

是的,你可以(谷歌在ado.net教程ado.net),但它不是MVC方式。 MVC的方式是使用某种ORM(对象关系映射),如NHibernate,Subsonic或Linq for SQL。

+1

使用ORM或某种中间件的不是MVC的方式,这是偷懒的方法(我使用它们,因为我不想编写了定期ado.net)。 – Min 2009-08-12 15:53:28

+0

你搞错了,我需要的是知道把连接字符串放在哪里,就像在过去的web.config中一样?其次,我如何从模型中调用一个过程并获取结果数据?我不知道如何在MVC中做到这一点,而不是如何访问数据库! 你长了我的问题错了,我用Google搜索这和在哪里放置在访问数据库的代码,我怎样才能得到所得到的数据,在视图中显示 – Ahmy 2009-08-12 16:00:25

0

你可以把你的连接字符串放在配置中,就像你习惯的一样。

您可以像调用任何.Net应用程序一样调用过程。 @ svinto关于使用ORM的建议是另一种做事方式,值得一看。许多ASP.Net MVC的优秀示例都使用ORM技术。

如果您不想沿着这条路线走下去,您可能会从创建您从MVC应用程序引用的独立类库项目中受益。你的类库项目可以作为在那里你处理来电DB数据访问层(DAL),等等......然后

你的控制器可以调用您的DAL和处理方法来填充实体的意见。

+0

感谢mr.grenade但把连接字符串中网在没有明确的答案.config如何从模型中调用我的过程?我必须添加一个包含调用过程方法的类吗?如果我在想什么是对的,并且我已经在模型文件夹中创建了一个类,那么如何让控制器调用此类并获取数据并将其传递给要显示的视图?真的我太困惑,我讨厌MVC在开始时,因为这个话题 – Ahmy 2009-08-12 16:09:57

+0

在更短的帮助如果你想享受生活的简单的一面,你真的会很好地遵循@ svinto的职务的建议。 – grenade 2009-08-12 16:12:17

+0

不,我需要知道如何从模型调用过程是我的想法正确创建一个类,其中包括方法调用数据库程序?我需要明确的帮助,不要笑我的工作失败,我不知道如何恢复希望,你明白我的需要 – Ahmy 2009-08-12 16:14:50

0

Ahmy,我想给将是最好的建议你开始使用MVC框架,看看到了MVC模式和领域驱动设计背后的原理开发之前。

具体来说,看看仓库模式等

您仍然可以添加连接字符串到Web.config中块和访问它们,你会在web表单项目都做了,所有的Asp.net后MVC基于webforms。如果你按照预期的方式利用MVC,那么你可能不会真的想这样做,而是关于分离问题。

www.asp.net有一些很棒的介绍。值得关注的例子。

+0

我已经从那里下载视频,并看着它,因为我在我的问题中提到,但他们正在连接到数据库通过向导通过创建数据库和添加表与记录和查询这些记录,但我需要的是数据库已经存在,我需要调用过程,并不知道如何做到这一点在模型中以及如何获取数据从控制器中的模型,把它放在适当的视图?????? 感谢UR关注希望,因为我从MVC – Ahmy 2009-08-12 16:12:45

+0

无聊U将回复我,请更可能你看了有使用LINQ到SQL ORM工具,如上面提到的任何视频。如果你有Visual Studio,你应该可以做同样的事情。使用服务器资源管理器指向数据库,然后使用Linq to SQL来构建您的ORM模型。 – Lewis 2009-08-12 16:21:34

+0

...如果你遇到的问题是与您的模型和视图等的设计,那么你所遇到的问题是不是一个真正的数据库连接之一,它最好的MVC模式本身读了。我希望有所帮助。 – Lewis 2009-08-12 16:23:33

1

如何在没有向导和调用过程和查询表的情况下连接到数据库。

要调用的程序(这里将不返回任何结果,只是执行一些动作):

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在哪里放这段代码(激励我不需要这段代码)? 我需要知道我将如何与模型,视图和控制器集成?我需要创建一个控制器并把这个代码放在里面吗?或者你必须在代码中创建一个类后将这段代码放入模型中? 请帮助我,并非常感谢您的关注 – Ahmy 2009-08-12 17:05:17

+1

您必须将此代码放入数据访问层的类中。通常,您将拥有:查看<-->控制器<-->存储库<--> DataAccess <--> Storedproc <-->表,视图和控制器交换模型,数据访问,存储库,控制器交换一些数据实体 – Gregoire 2009-08-12 17:32:11

2

我毫不犹豫地对此作出回应,但你已经看到的每部影片很可能使用OR/M生成模型和DAL。生成的DAL可能会将您的调用封装到您询问的存储过程中。

的关键是 - 这里的原因你没有得到你要的答案 - 每个OR/M将不得不从检索数据和将数据插入到数据库的不同方法。如果您使用Entity Framework,Linq to SQL,SubSonic,NHibernate或任何其他OR/M,如何使用OR/M从数据库检索数据将会有所不同。

所以,问题在于你。你在使用OR/M吗?如果是这样,哪一个?如果不是,那么您将使用标准的ADO.NET调用来检索和存储数据。这也反映在我对你原来的问题的评论中。

0

尝试下载NerdDinner,或更好的... ContactManager迭代1(本教程直接回答你的Q)。那些应该给你一个关于如何处理数据库访问的好主意。虽然我不建议看像Oxite或MS StoreFront,因为这些更复杂一些。

具体回答你的问题:连接字符串,就像在ASP.NET中,可以在你的web.config去或硬编码在应用程序中。