Posted at :
Aug/02/2010
Apabila dalam pembuatan asp.net web site versi 2.0 atau di atasnya menggunakan fitur Security, Membership, Role atau Profile maka asp.net akan membuatkan database yang di generate secara otomatis untuk menyimpan data-data tersebut. Default database yang digunakan yaitu SQL Server Express dan akan disimpan di folder App_Data di project tersebut. Bagaimana kalau kita ingin mengubah database tersebut ke lokasi yang lain dan disimpan di SQL Server non Express?
Setting lokasi default database tersebut disimpan di file machine.config dan berada pada elemen connectionStrings. Kita dapat mengubah setting yang tersimpan di element tersebut dan di copy kan ke file web.config yang terdapat di root project. Apabila setting elemen kita ubah langsung di file machine.config maka semua project asp.net web site yang terdapat di komputer tersebut akan menggunakan setting yang sama. Pada contoh kali ini kita hanya akan melakukan modifikasi elemen connectionStrings per asp.net web site, sehingga perubahan tersebut tidak berdampak pada asp.net web site lainnya.
Berikut langkah-langkahnya (Saya menggunakan Visual Studio 2010, sesuaikan dengan versi Visual Studio yang anda gunakan) :
1). Buka lokasi direktori berikut (sesuaikan dengan versi .NET Framework yang anda gunakan) :
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config
2). Buka file machine.config (XML Configuration File Type) dan cari elemen berikut :
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
copy kan elemen tersebut ke file web.config di asp.net web site anda dan lakukan perubahan connection string sesuai dengan target lokasi database yang diinginkan, misalnya seperti berikut ini :
<configuration>
<connectionStrings>
<clear/>
<add name="LocalSqlServer" connectionString="data source=.\SQL2008;uid=sa;pwd=sql2008;initial catalog=aspnetdb"
providerName="System.Data.SqlClient"/>
</connectionStrings>
……
3). Buka visual studio command prompt dan ketikkan perintah aspnet_regsql untuk menampilkan wizard yang akan menghasilkan database yang dibutuhkan untuk menyimpan roles dan membership pada lokasi dan SQL Server yang diinginkan seperti berikut ini :




Pada gambar ketiga diatas anda tentukan SQL Server Instance Name yang akan digunakan, jenis autentikasi dan nama database yang akan di generate. Apabila nama database diisi dengan default maka nama database yang aka dihasilkan yaitu aspnetdb, namun apabila anda menginginkan nama yang lain tinggal di ketikkan secara manual di Dropdown control database nya. Untuk contoh kali ini saya menggunakan nama database default.

Untuk memastikan apakah database digenerate dengan sukses anda dapat membuka SQL Server dengan SQL Server Management Studio :
Selamat mencoba :)