如何在C#MVC中将用户存储在SQLEXPRESS数据库中?

时间:2011-10-19 16:28:39

标签: c# asp.net-mvc-3 sql-server-express

我只是在学习MVC,我想将数据存储在SQLEXPRESS而不是提供的MDF文件中。

我上网了解到我应该更改Web.config,所以我注释掉并替换连接字符串,如下所示:

  <connectionStrings>
    <!--<add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />-->
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=BuySellDB"/>
  </connectionStrings>

我希望System.Security.Membership会自动创建一个新的数据库和表来保存我的信息,但它没有 - 相反,它只是barfs,因为它无法在那里找到数据库。如果不存在,如何将其配置为创建新数据库和表?

编辑:我正在观看asp.net/mvc 上的教程视频,我看到DropCreateDatabaseIfModelChanges如何用于自动创建或重新创建必要的数据库和架构。我希望有一些方法可以在其中包含aspnet_*表....

2 个答案:

答案 0 :(得分:2)

您必须使用命令promt自己创建数据库。

启动该命令promt并执行“aspnet_regsql”。向导将启动 并帮助您创建数据库。

这是很好的样本=&gt; http://www.ezineasp.net/post/How-to-Create-Aspnetdb.aspx

如果你想放弃这个项目。想想

  • 按照我的说法创建数据库
  • 创建一个sql脚本
  • 首次启动时在应用程序中使用SqlClient构建数据库

您可以检查global.asax“Application_Start”方法

中是否存在数据库
protected void Application_Start(Object sender, EventArgs e) 
{
 //... check if your database already exists, if not DO IT ;)
}

答案 1 :(得分:2)

在您想要的场景中 - 您的数据库是一个有效的sql express MDF文件。

通常是共享解决方案的最佳方式,否则您将不得不担心数据库配置,设置数据库,服务器等等。如果您仍想这样做,我想在visual studio中的服务器资源管理器中右键单击您的数据连接,并发布数据库并生成脚本,如果您有任何自定义,否则使用aspnet_regsql。

但是我仍然强烈建议您分享此应用程序,将其保存在app_Data文件夹中,让其他用户选择是否要在其他地方运行。他们可以使用相同的方法按照他们认为合适的方式发布它。