Ketika anda install VS 2005 atau VSTS 2005 maka biasanya VSTS/VS 2005 akan tight ke database SQL Server Express 2005 ataupun SQL Server 2005 akibatnya .NET Framework 2.0 yang diinstall bersama dengan VS 2005 atau VSTS 2005 juga akan tight ke database SQL Server Express 2005 ataupun SQL Server 2005.
Pertanyaannya sekarang kenapa .NET Framework 2.0 memerlukan database ? simple answer adalah karena .NET Framework 2.0 memerlukan database untuk menyimpan personalization, user, role maupun state dari aplikasi terutama aplikasi web. Jika anda tidak memakai fitur-fitur ini maka anda tidak terkena aturan ini, untuk Sebagai contoh kasus ini, jika dikomputer anda hanya terinstall .NET Framework 2.0 + SQL Server 2000 maka ketika membuat aplikasi web yang memakai web parts melalui VS 2005 atau VSTS 2005 dimana kita kita ketahui bahwa fitur ini memerlukan database SQL Express 2005 atau MS SQL Server 2005 dan dikomputer anda hanya menginstall MS SQL Server 2000 maka akan terjadi error seperti gambar dibawah ini

Kemudian bagaimana solusinya untuk masalah ini ? it's not a big problem..ada 2 solusi untuk mengatasi masalah ini. 2 SOlusi itu antara lain:
1. Install MS Express 2005 atau MS SQL Server 2005
ini adalah solusi paling mudah dan NO RISK
2. Mengganti database selain MS Express 2005 atau MS SQL Server 2005
Ini solusi yang sederhana tetapi juga akan mempunyai efek pada aplikasi
jika kita tidak menangani dengan baik
Dalam tulisan ini, saya akan mencoba memfokuskan untuk solusi 2 yaitu mengganti database SQL Express 2005 atau MS SQL Server 2005 menjadi MS SQL Server 2000.
Konfigurasi Database 2000 pada .NET Framework 2.0
Kalau kita perhatikan bahwa .NET Framework 2.0 secara default menggunakan database SQL Express 2005 untuk keperluan menyimpan state dari aplikasi yang memakai framework ini. Ini dapat kita buktikan dengan melihat konfigurasi file machine.config, file ini ada dibagian C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG (ini jika ada install OS Windows di C:).
Pada bagian file machine.config akan terdapat line script sebagai berikut:
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" />
</connectionStrings>
Nah,inilah penyebabnya error dari gambar diatas dimana .NET Framework 2.0 tidak menemukan database SQL Express yang seperti konfigurasi script diatas. Untuk mengubah kedalam database SQL Server 2000 cukup dengan menggantinya menjadi script sebagai berikut:
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=(local);Integrated Security=SSPI;database=aspnetdb;" providerName="System.Data.SqlClient" />
</connectionStrings>
Untuk dapat memakai script diatas
- pastikan database di SQL Server 2000 sudah dibuat,contoh disini database: aspnetdb
- kalau pakai Integrated Security=SSPI maka pastikan user ASPNET dapat mengakses
database (tidak direkomendasikan)
- Kalau tidak pakai Integrated Security=SSPI maka buat user id dan password ke
database ini sehingga scriptnya menjadi
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=(local);uid=userid;pwd=password;database=aspnetdb;" providerName="System.Data.SqlClient" />
</connectionStrings>
Baru sekarang coba lagi untuk menjalankan..sukses!!
Cara lain dengan menggunakan wizard yaitu dengan cara memanggil aspnet_regsql.exe melalui commandline dari VS 2005 atau VSTS 2005 atau cmd yg mesti dibawa ke folder C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 baru ketik aspnet_regsql.exe sehingga akan muncul kotak dialog seperti dibawahh ini

Ikuti semua petunjuk yang diberikan oleh wizard tersebut.
Saya tidak punya SQL Server 2000, apakah bisa memakai database lainnya ?
Yeah!!..bisa, .NET Framework 2.0 memungkinkan untuk multiple database. Cukup dengan mengganti nilai connectionstring dan providername nya...misalkan untuk MySql maka providername adalah System.Data.MySql (ini mesti install provider MySQL, download di portalnya;) ).
Ok, semoga ini berguna.