Pernyataan: Artikel ini telah diterbitkan dalam "Aplikasi Komputer" Volume 23 Edisi 11
Abstrak: Dalam pengembangan berbagai sistem, penggunaan prosedur tersimpan merupakan kebiasaan yang baik, yang tidak hanya menghadirkan fitur-fitur seperti tabel sementara, fungsi, dan kursor, tetapi juga Debugging, peningkatan, dan pemeliharaan menjadi mudah. Namun, hampir semua panggilan prosedur tersimpan berada dalam mode yang sama, dan perbedaan utamanya adalah parameter setiap prosedur tersimpan berbeda. Jadi, apakah mungkin menggunakan metode untuk menyatukan semua panggilan prosedur tersimpan dan mengurangi pemrograman yang tidak perlu? Berdasarkan studi database SQL Server dan ASP.NET, kami menerapkan metode pemanggilan terpadu. Metode ini hanya perlu memberikan nama prosedur tersimpan yang akan dipanggil, dan memberikan nilai parameter tertentu saat memanggil, sehingga tersimpan apa pun. prosedur dapat dipanggil.
Kata kunci: prosedur tersimpan, tabel sistem, tampilan struktur informasi, Kode identifikasi dokumen ADO.NET: ② Laporan pencapaian teknis praktik (teknologi), ringkasan pembelajaran teori dan praktik sosial (ilmu sosial)
Panggil prosedur tersimpan dengan cara yang sama di .NET
Abstrak: Menggunakan prosedur tersimpan adalah kebiasaan yang baik dalam mengembangkan proyek. Ini menyediakan tabel sementara, fungsi dan kursor, dan debugging, peningkatan, pemeliharaan juga dapat mengambil manfaat darinya. Namun, hampir semua pemanggilan ke prosedur tersimpan memiliki pola yang sama, yang utama Perbedaan di antara keduanya adalah parameter dari setiap prosedur tersimpan. Lalu, bisakah kita memanggil prosedur tersimpan dengan cara yang sama meskipun ada perbedaan dan mengurangi kode pemrograman. Kami melakukannya setelah mempelajari SQL Server dan .NET nama prosedur tersimpan dan nilai parameternya, Anda tidak perlu membuat parameternya sendiri. Kata kunci: Prosedur Stord, Tabel sistem, Skema Informasi, ADO.NET
Ringkasan: Dalam pengembangan suatu proyek, Anda sering memanggil prosedur tersimpan. Namun hampir semua pemanggilan prosedur tersimpan memiliki pola yang sama. Perbedaan utamanya terletak pada jenis dan nilai setiap parameter yang dibuat. Jadi, apakah mungkin memanggil semua prosedur tersimpan melalui satu fungsi (atau kelas)? Artikel ini mengimplementasikan metode pemanggilan terpadu berdasarkan prinsip penggunaan tabel sistem yang disediakan oleh database. Metode ini hanya perlu memberikan nama prosedur tersimpan yang akan dipanggil, dan memberikan nilai parameter tertentu saat memanggil, sehingga apa pun prosedur tersimpan dapat dipanggil.
Abstrak: Kita harus memanggil prosedur tersimpan dari sistem database selama pengembangan suatu proyek. Namun, memanggil prosedur tersimpan hampir sama, perbedaan utamanya adalah perbedaan antara jenis atau nilai parameter, dll. Bisakah kita memanggil prosedur tersimpan apa pun melaluinya? suatu fungsi (atau kelas)? Berdasarkan tabel sistem yang disediakan oleh sistem database, Kami menulis sebuah kelas untuk memanggil prosedur tersimpan apa pun dalam artikel ini. Untuk memanggil prosedur tersimpan, satu-satunya parameter yang Anda berikan adalah nama prosedur tersimpan dan nilai semua parameter prosedur tersimpan.
private void GetProcedureParameter(params objek[] parameter)
{ SqlCommand myCommand2 = new SqlCommand(
)
;
= '" + this.ProcedureName + "' diurutkan berdasarkan ORDINAL_POSITION";
SqlDataReader reader = null; reader = myCommand2.ExecuteReader(); // Buat parameter pengembalian
myParameter = new SqlParameter();
myParameter.ParameterName = "@Value";
myParameter .SqlDbType = SqlDbType.Int;
myParameter.Direction = ParameterDirection.ReturnValue;
myCommand.Parameters.Add(myParameter);
// Membuat setiap parameter
while(pembaca.Baca())
{
myParameter = new SqlParameter();
myParameter.ParameterName = pembaca["PARAMETER_NAME"].ToString();
myParameter.Direction = pembaca["PARAMETER_MODE"].ToString()=="IN" ?ParameterDirection.Input:ParameterDirection.Output;
switch(reader["DATA_TYPE"].ToString()) {
case "int" :
if(myParameter.Direction == ParameterDirection.Input)
myParameter.Value = (int)parameter[i] ;
myParameter.SqlDbType = SqlDbType.Int;
break
; //...banyak pemrosesan tipe tertentu dihilangkan
default : break;
i
++
;
3.2 Kumpulan data hasil pengembalian, nilai kembalian, dan kumpulan parameter keluar. Setelah membuat parameter dari prosedur tersimpan, kita dapat memanggil prosedur tersimpan. Karena di .NET, kelas yang umum digunakan yang mengembalikan kumpulan hasil adalah SqlDataReader dan DataSet, dan SqlDataReader hanya dapat digunakan sambil mempertahankan koneksi, namun DataSet tidak. Dalam implementasi kami, koneksi harus diputuskan setelah panggilan, sehingga DataSet digunakan untuk menyimpan kumpulan hasil yang dikembalikan.
public SqlResult Call(params object[] parameter){ // SqlResult adalah kelas yang ditentukan sendiri yang digunakan untuk menyimpan kumpulan data hasil, nilai kembalian, dan kumpulan parameter keluar. SqlResult result = new SqlResult(); // Tentukan koneksi Anda sendiri sebagai diperlukan String
myConnection = new SqlConnection(ConnectionString);
myCommand = new SqlCommand(this.ProcedureName, myConnection);
myCommand.CommandType
= CommandType.StoredProcedure
; // Dapatkan dan buat Simpan parameter prosedur dan atur nilainya
GetProcedureParameter(parameters);
myAdapter.Fill(result.dataSet, "Table"); // Dapatkan nilai parameter keluar dan pasangan nama dari prosedur tersimpan dan simpan dalam Hashtable
GetOutputValue(result
) ; // Lepaskan berbagai sumber daya di sini dan putuskan sambungan
myConnection.Dispose
(
)
;
4. Pekerjaan lebih lanjut Meskipun implementasi kami di sini adalah untuk database SQL Server, metode ini dapat digunakan untuk database apa pun yang menyediakan tampilan struktur informasi, mematuhi standar ANSI-92, atau menyediakan metadata. Kami merangkumnya ke dalam kelas SqlProcedure, dan prosedur tersimpan dapat dengan mudah dipanggil saat diperlukan, sehingga mengurangi banyak pekerjaan kode yang pada dasarnya berulang. Agar kelas SqlProcedure mendukung lebih banyak tipe data, dalam metode GetProcedureParameter(), Anda perlu menganalisis tipe, arah, panjang, nilai default, dan informasi lain dari setiap parameter sesuai dengan kebutuhan Anda, lalu membuat parameter ini. Pada dasarnya tipe apa pun bisa diimplementasikan, bahkan tipe gambar pun bisa dibuat dengan cara ini. Dengan cara ini kelas bisa menjadi sangat umum dan berguna dalam proyek apa pun.
Referensi
[1] Ray Rankins, Paul Jensen, Paul Bertucci, Buku Praktis SQL Server 2000, Beijing: Electronic Industry Press, 2002
[2] Perpustakaan MSDN Januari 2003, Microsoft Corporation.
Tentang penulis: Liu Zhibo (1979-), pria, dari Xinhua, Hunan, gelar master, arahan penelitian utama: jaringan saraf dan pengenalan pola, sistem informasi otomasi kantor
email:[email protected]