SqlConnection Kelas

Definisi

Mewakili koneksi ke database SQL Server. Kelas ini tidak dapat diwariskan.

public ref class SqlConnection sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public sealed class SqlConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
type SqlConnection = class
    inherit Component
    interface IDbConnection
    interface IDisposable
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
    interface ICloneable
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
Warisan
Warisan
Penerapan

Contoh

Contoh berikut membuat SqlCommand dan SqlConnection. SqlConnection dibuka dan ditetapkan sebagai Connection untuk SqlCommand. Contoh kemudian memanggil ExecuteNonQuery. Untuk mencapai hal ini, ExecuteNonQuery diteruskan SqlConnection dan string kueri yang merupakan pernyataan INSERT Transact-SQL. Koneksi ditutup secara otomatis ketika kode keluar dari blok penggunaan.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

Keterangan

Objek SqlConnection mewakili sesi unik ke sumber data SQL Server. Dengan sistem database klien/server, itu setara dengan koneksi jaringan ke server. SqlConnection digunakan bersama dengan SqlDataAdapter dan SqlCommand untuk meningkatkan performa saat menyambungkan ke database Microsoft SQL Server. Untuk semua produk SQL Server pihak ketiga dan sumber data lain yang didukung OLE DB, gunakan OleDbConnection.

Saat Anda membuat instans SqlConnection, semua properti diatur ke nilai awalnya. Untuk daftar nilai-nilai ini, lihat SqlConnection konstruktor.

Lihat ConnectionString untuk daftar kata kunci dalam string koneksi.

SqlConnection Jika keluar dari cakupan, itu tidak akan ditutup. Oleh karena itu, Anda harus secara eksplisit menutup koneksi dengan memanggil Close atau Dispose. Close dan Dispose setara secara fungsional. Jika nilai Pooling pengumpulan koneksi diatur ke true atau yes, koneksi yang mendasar dikembalikan ke kumpulan koneksi. Di sisi lain, jika Pooling diatur ke false atau no, koneksi yang mendasar ke server sebenarnya ditutup.

Nota

Peristiwa login dan logout tidak akan dijalankan di server ketika koneksi diambil dari atau dikembalikan ke kumpulan koneksi, karena koneksi tidak benar-benar ditutup ketika dikembalikan ke kumpulan koneksi. Untuk informasi selengkapnya, lihat SQL Server Connection Pooling (ADO.NET).

Untuk memastikan bahwa koneksi selalu tertutup, buka koneksi di dalam using blok, seperti yang ditunjukkan dalam fragmen kode berikut. Melakukannya memastikan bahwa koneksi ditutup secara otomatis ketika kode keluar dari blok.

Using connection As New SqlConnection(connectionString)
    connection.Open()
    ' Do work here; connection closed on following line.
End Using
using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        // Do work here; connection closed on following line.
    }

Nota

Untuk menyebarkan aplikasi berkinerja tinggi, Anda harus menggunakan pengumpulan koneksi. Saat Anda menggunakan Data Provider .NET Framework untuk SQL Server, Anda tidak perlu mengaktifkan pengumpulan koneksi karena penyedia mengelola ini secara otomatis, meskipun Anda dapat mengubah beberapa pengaturan. Untuk informasi selengkapnya, lihat SQL Server Connection Pooling (ADO.NET).

SqlException Jika dihasilkan oleh metode yang mengeksekusi SqlCommand, SqlConnection tetap terbuka ketika tingkat keparahan adalah 19 atau kurang. Ketika tingkat keparahan adalah 20 atau lebih besar, server biasanya menutup SqlConnection. Namun, pengguna dapat membuka kembali koneksi dan melanjutkan.

Aplikasi yang membuat instans SqlConnection objek dapat mengharuskan semua penelepon langsung dan tidak langsung untuk memiliki izin yang memadai ke kode dengan mengatur tuntutan keamanan deklaratif atau imperatif. SqlConnection membuat tuntutan keamanan menggunakan SqlClientPermission objek . Pengguna dapat memverifikasi bahwa kode mereka memiliki izin yang memadai dengan menggunakan SqlClientPermissionAttribute objek . Pengguna dan administrator juga dapat menggunakan Caspol.exe (Code Access Security Policy Tool) untuk memodifikasi kebijakan keamanan di tingkat komputer, pengguna, dan perusahaan. Untuk informasi selengkapnya, lihat Keamanan di .NET. Untuk contoh yang menunjukkan cara menggunakan tuntutan keamanan, lihat Keamanan Akses Kode dan ADO.NET.

Untuk informasi selengkapnya tentang menangani peringatan dan pesan informasi dari server, lihat Peristiwa Koneksi. Untuk informasi selengkapnya tentang kesalahan mesin SQL Server dan pesan kesalahan, lihat Database Engine Peristiwa dan Kesalahan.

Caution

Anda dapat memaksa TCP alih-alih memori bersama. Anda dapat melakukannya dengan awalan tcp: ke nama server di string koneksi atau Anda dapat menggunakan localhost.

Konstruktor

Nama Deskripsi
SqlConnection()

Menginisialisasi instans baru dari kelas SqlConnection.

SqlConnection(String, SqlCredential)

Menginisialisasi instans SqlConnection baru kelas yang diberi string koneksi, yang tidak menggunakan Integrated Security = true dan SqlCredential objek yang berisi ID pengguna dan kata sandi.

SqlConnection(String)

Menginisialisasi instans SqlConnection baru kelas saat diberi string yang berisi string koneksi.

Properti

Nama Deskripsi
AccessToken

Mendapatkan atau mengatur token akses untuk koneksi.

CanRaiseEvents

Mendapatkan nilai yang menunjukkan apakah komponen dapat menaikkan peristiwa.

(Diperoleh dari Component)
ClientConnectionId

ID koneksi dari upaya koneksi terbaru, terlepas dari apakah upaya berhasil atau gagal.

ColumnEncryptionKeyCacheTtl

Mendapatkan atau mengatur waktu hidup untuk entri kunci enkripsi kolom di cache kunci enkripsi kolom untuk fitur Always Encrypted . Nilai defaultnya adalah 2 jam. 0 berarti tidak ada penembolokan sama sekali.

ColumnEncryptionQueryMetadataCacheEnabled

Mendapatkan atau menetapkan nilai yang menunjukkan apakah penembolokan metadata kueri diaktifkan (benar) atau tidak (salah) untuk kueri berparameter yang berjalan terhadap database yang diaktifkan Always Encrypted . Nilai defaultnya adalah true.

ColumnEncryptionTrustedMasterKeyPaths

Memungkinkan Anda mengatur daftar jalur kunci tepercaya untuk server database. Jika saat memproses kueri aplikasi, driver menerima jalur kunci yang tidak ada dalam daftar, kueri akan gagal. Properti ini memberikan perlindungan tambahan terhadap serangan keamanan yang melibatkan SQL Server yang disusupi yang menyediakan jalur kunci palsu, yang dapat menyebabkan bocornya kredensial penyimpanan kunci.

ConnectionString

Mendapatkan atau mengatur string yang digunakan untuk membuka database SQL Server.

ConnectionTimeout

Mendapatkan waktu untuk menunggu (dalam detik) saat mencoba membuat koneksi sebelum mengakhiri upaya dan menghasilkan kesalahan.

Container

IContainer Mendapatkan yang berisi Component.

(Diperoleh dari Component)
Credential

Mendapatkan atau menyetel SqlCredential objek untuk sambungan ini.

Database

Mendapatkan nama database saat ini atau database yang akan digunakan setelah koneksi dibuka.

DataSource

Mendapatkan nama instans SQL Server yang akan disambungkan.

DbProviderFactory

DbProviderFactory Mendapatkan untuk iniDbConnection.

(Diperoleh dari DbConnection)
DesignMode

Mendapatkan nilai yang menunjukkan apakah Component saat ini dalam mode desain.

(Diperoleh dari Component)
Events

Mendapatkan daftar penanganan aktivitas yang dilampirkan ke ini Component.

(Diperoleh dari Component)
FireInfoMessageEventOnUserErrors

Mendapatkan atau mengatur FireInfoMessageEventOnUserErrors properti.

PacketSize

Mendapatkan ukuran (dalam byte) paket jaringan yang digunakan untuk berkomunikasi dengan instans SQL Server.

ServerVersion

Mendapatkan string yang berisi versi instans SQL Server tempat klien terhubung.

Site

Mengambil atau menetapkan ISite dari Component.

(Diperoleh dari Component)
State

Menunjukkan status SqlConnection selama operasi jaringan terbaru yang dilakukan pada koneksi.

StatisticsEnabled

Ketika diatur ke true, memungkinkan pengumpulan statistik untuk koneksi saat ini.

WorkstationId

Mendapatkan string yang mengidentifikasi klien database.

Metode

Nama Deskripsi
BeginDbTransaction(IsolationLevel)

Saat ditimpa di kelas turunan, memulai transaksi database.

(Diperoleh dari DbConnection)
BeginTransaction()

Memulai transaksi database.

BeginTransaction(IsolationLevel, String)

Memulai transaksi database dengan tingkat isolasi dan nama transaksi yang ditentukan.

BeginTransaction(IsolationLevel)

Memulai transaksi database dengan tingkat isolasi yang ditentukan.

BeginTransaction(String)

Memulai transaksi database dengan nama transaksi yang ditentukan.

ChangeDatabase(String)

Mengubah database saat ini untuk membuka SqlConnection.

ChangePassword(String, SqlCredential, SecureString)

Mengubah kata sandi SQL Server untuk pengguna yang ditunjukkan dalam objek SqlCredential.

ChangePassword(String, String)

Mengubah kata sandi SQL Server untuk pengguna yang ditunjukkan dalam string koneksi ke kata sandi baru yang ditentukan.

ClearAllPools()

Mengolah kumpulan koneksi.

ClearPool(SqlConnection)

Mengolah kumpulan koneksi yang terkait dengan koneksi yang ditentukan.

Close()

Menutup koneksi ke database. Ini adalah metode yang disukai untuk menutup koneksi terbuka apa pun.

CreateCommand()

Membuat dan mengembalikan objek yang SqlCommand terkait dengan SqlConnection.

CreateDbCommand()

Saat ditimpa di kelas turunan, membuat dan mengembalikan objek yang DbCommand terkait dengan koneksi saat ini.

(Diperoleh dari DbConnection)
CreateObjRef(Type)

Membuat objek yang berisi semua informasi relevan yang diperlukan untuk menghasilkan proksi yang digunakan untuk berkomunikasi dengan objek jarak jauh.

(Diperoleh dari MarshalByRefObject)
Dispose()

Merilis semua sumber daya yang Componentdigunakan oleh .

(Diperoleh dari Component)
Dispose(Boolean)

Merilis sumber daya yang tidak dikelola yang Component digunakan oleh dan secara opsional merilis sumber daya terkelola.

(Diperoleh dari Component)
EnlistDistributedTransaction(ITransaction)

Mendaftarkan dalam transaksi yang ditentukan sebagai transaksi terdistribusi.

EnlistTransaction(Transaction)

Mendaftarkan dalam transaksi yang ditentukan sebagai transaksi terdistribusi.

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetLifetimeService()

Mengambil objek layanan seumur hidup saat ini yang mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
GetSchema()

Mengembalikan informasi skema untuk sumber data ini SqlConnection. Untuk informasi selengkapnya tentang skema, lihat SQL Server Koleksi Skema.

GetSchema(String, String[])

Mengembalikan informasi skema untuk sumber data ini SqlConnection menggunakan string yang ditentukan untuk nama skema dan array string yang ditentukan untuk nilai pembatasan.

GetSchema(String)

Mengembalikan informasi skema untuk sumber data ini SqlConnection menggunakan string yang ditentukan untuk nama skema.

GetService(Type)

Mengembalikan objek yang mewakili layanan yang disediakan oleh Component atau oleh Container.

(Diperoleh dari Component)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
InitializeLifetimeService()

Mendapatkan objek layanan seumur hidup untuk mengontrol kebijakan seumur hidup untuk instans ini.

(Diperoleh dari MarshalByRefObject)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
MemberwiseClone(Boolean)

Membuat salinan dangkal objek saat ini MarshalByRefObject .

(Diperoleh dari MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

Menaikkan StateChange acara.

(Diperoleh dari DbConnection)
Open()

Membuka koneksi database dengan pengaturan properti yang ditentukan oleh ConnectionString.

OpenAsync()

Versi asinkron dari Open(), yang membuka koneksi database dengan pengaturan yang ditentukan oleh ConnectionString. Metode ini memanggil metode OpenAsync(CancellationToken) virtual dengan CancellationToken.None.

(Diperoleh dari DbConnection)
OpenAsync(CancellationToken)

Versi asinkron dari Open(), yang membuka koneksi database dengan pengaturan properti yang ditentukan oleh ConnectionString. Token pembatalan dapat digunakan untuk meminta agar operasi ditinggalkan sebelum batas waktu koneksi berlalu. Pengecualian akan disebarluaskan melalui Tugas yang dikembalikan. Jika waktu habis koneksi berlalu tanpa berhasil menyambungkan, Tugas yang dikembalikan akan ditandai sebagai rusak dengan Pengecualian. Implementasi mengembalikan Tugas tanpa memblokir utas panggilan untuk koneksi terkumpul dan tidak terkumpul.

RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Mendaftarkan penyedia penyimpanan kunci enkripsi kolom.

ResetStatistics()

Jika pengumpulan statistik diaktifkan, semua nilai diatur ulang ke nol.

RetrieveStatistics()

Mengembalikan kumpulan pasangan nilai nama statistik pada titik waktu metode dipanggil.

ToString()

Mengembalikan yang String berisi nama Component, jika ada. Metode ini tidak boleh ditimpa.

(Diperoleh dari Component)

Acara

Nama Deskripsi
Disposed

Terjadi ketika komponen dibuang oleh panggilan ke Dispose() metode .

(Diperoleh dari Component)
InfoMessage

Terjadi ketika SQL Server mengembalikan pesan peringatan atau informasi.

StateChange

Terjadi ketika status koneksi berubah.

StateChange

Terjadi ketika status koneksi berubah.

(Diperoleh dari DbConnection)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
ICloneable.Clone()

Membuat objek baru yang merupakan salinan instans saat ini.

IDbConnection.BeginTransaction()

Memulai transaksi database.

IDbConnection.BeginTransaction()

Memulai transaksi database.

(Diperoleh dari DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

Memulai transaksi database dengan nilai yang ditentukan IsolationLevel .

IDbConnection.BeginTransaction(IsolationLevel)

Memulai transaksi database dengan tingkat isolasi yang ditentukan.

(Diperoleh dari DbConnection)
IDbConnection.CreateCommand()

Membuat dan mengembalikan objek Perintah yang terkait dengan koneksi.

IDbConnection.CreateCommand()

Membuat dan mengembalikan DbCommand objek yang terkait dengan koneksi saat ini.

(Diperoleh dari DbConnection)

Berlaku untuk

Lihat juga