Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

How to create Aspnetdb database

0.00/5 (No votes)
13 Nov 2010 1  
This tip describes a shorter way to create the aspnetdb schema on your database instead of using aspnet_regsql command

Microsoft has introduced its default database schema which is served as a role provider, membership provider and profile provider in .NET 2+.
In .NET 4, the database is created automatically, and is added to your App_Data folder and an appropriate connection string will be added to your web.config. But to be able to use this feature in previous versions of .NET, you have to create the database yourself and configure your web.config to point to that database.
For the web.config part, you have to add the following part to it:



XML
<connectionStrings>
    <remove name="LocalSqlServer" />
    <add name="LocalSqlServer" connectionString="Data Source=SERVER_NAME;Initial Catalog=DATABASE_NAME;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>


where SERVER_NAME and DATABASE_NAME should be replaced by your server/database name.
But how do you create the database with the default ASP.NET membership schema? The first solution is that you can use the aspnet_regsql command. A step by step tutorial can be found at http://programming.top54u.com/post/How-to-Create-Aspnetdb.aspx[^]
But as far as I can remember, this command tool was a bit tricky for me and didn't always work as expected especially if you have more than one website in your dev machine that uses Aspnetdb. So I searched for a better solution and here it is:

1- Create your database in SQL server.
2- Open up your ASP.NET website in which you'd like to use ASP.NET membership features.
3- Add the following using (or imports in case of VB) directive to your default.aspc.cs (or .vb)
C#
using System.Web.Management;

4- In the load event of your website, add the following method call:
System.Web.Management.SqlServices.Install("YOUR_SERVER", "YOUR_DATABASE", SqlFeatures.All);


Just replace the SERVER_NAME and DATABASE with the appropriate values.
Also, if you're using SQL Express edition, there's an overload for that as well:

System.Web.Management.SqlServices.Install("YOUR_DATABASE", SqlFeatures.All, "YOUR_CONNECTION_STRING");


Now fire up your site and navigate to default.aspx. The code gets executed and if you open your database in SSMS, you'll see that default scripts have been executed on your database to create the default database for ASP.NET 2.0 web applications. You can now delete the command from your page's load event.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here