ASP.NET dan SQL SERVER adalah yang terbaik. Untuk program yang lebih besar, SQL SERVER biasanya menjadi pilihan pertama. Hanya mereka yang sangat ekonomis yang menggunakan ACCESS. Saat menggunakan SQL SERVER, untuk membuat database lebih efisien, prosedur tersimpan umumnya digunakan karena prosedur tersimpan dijalankan dengan cepat dan dapat mengimplementasikan beberapa kueri tingkat lanjut dan fungsi lainnya. Misalnya, beberapa parameter data diteruskan, namun prosedur SQL yang dijalankan mungkin berbeda.
Berikut ini contoh untuk membuat peran baru dan mengharuskan nama peran tersebut tidak dapat diulang. Berikut ini adalah prosedur tersimpan.
PROSEDUR BUAT sp_AccountRole_Create@CategoryID ke dalam,
@NamaPeran nvarchar(10),
@Deskripsi nvarchar(50),
@RoleID ke keluaran
SEBAGAI
MENYATAKAN @Hitung int-- Temukan apakah ada catatan dengan nama yang sama
PILIH @Hitungan = Hitungan(RoleID) DARI Akun_Peran DI MANA
Nama Peran = @Nama PeranJIKA @Hitungan = 0
MASUKKAN KE Akun_Peran
(ID Kategori, Nama Peran, Deskripsi) nilaiS
(@CategoryID, @RoleName, @Deskripsi)SET @RoleID = @@IDENTITAS
KEMBALI 1
PERGI
SqlConnection DbConnection = new SqlConnection(mConnectionString);
Perintah SqlCommand = new SqlCommand( "sp_AccountRole_Create", DbConnection );
DbConnection.Buka(connectString);
// Setel atribut SqlCommand ke prosedur tersimpan
command.CommandType = CommandType.StoredProcedure;command.Parameters.Add("@CategoryID", SqlDbType.Int, 4);
perintah.Parameter.Tambahkan("@RoleName", SqlDbType.NVarChar, 10);
perintah.Parameter.Tambahkan("@Deskripsi", SqlDbType.NVarChar, 50);
perintah.Parameter.Tambahkan("@RoleID", SqlDbType.Int, 4);
//nilai kembalian
command.Parameters.Add("Nilai Pengembalian",
SqlDbType.Int,
4, // Ukuran
ParameterArah.Nilai Pengembalian,
salah, // tidak dapat dibatalkan
0, // presisi byte
0, // skala byte
string.Kosong,
DataRowVersion.Default,
batal );command.parameters["@CategoryID"].value = izin.CategoryID;
command.parameters["@RoleName"].value = izin.PermissionName;
command.parameters["@Description"].value = izin.Deskripsi;
// Nilai ID baru dapat dikembalikan
command.parameters["@RoleID"].Direction = ParameterDirection.Output;int rowAffected = perintah.ExecuteNonQuery();
int hasil = perintah.parameter["Nilai Pengembalian"].nilai;
int newID = perintah.parameter["@RoleID"].value;
Fungsinya cukup kuat. Anda bisa mendapatkan tiga nilai, yaitu nilai dampak baris, nilai pengembalian prosedur tersimpan, dan nilai ID baru.