Bagikan melalui


SqlConnection Kelas

Definisi

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

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

Contoh

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

using System;
using System.Data;
using Microsoft.Data.SqlClient;

namespace SqlCommandCS
{
    class Program
    {
        static void Main()
        {
            string str = "Data Source=(local);Initial Catalog=Northwind;"
                + "Integrated Security=SSPI";
            string qs = "SELECT OrderID, CustomerID FROM dbo.Orders;";
            CreateCommand(qs, str);
        }
        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();
            }
        }
    }
}

Keterangan

Objek SqlConnection mewakili sesi unik ke sumber data SQL Server. Dengan sistem database klien/server, itu setara dengan koneksi jaringan ke server. SqlConnectiondigunakan 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 benar-benar ditutup.

Catatan

Peristiwa masuk dan keluar tidak akan dinaikkan 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 Kumpulan Koneksi SQL Server (ADO.NET).

Untuk memastikan bahwa koneksi selalu ditutup, buka koneksi di dalam blok, seperti yang using ditunjukkan dalam fragmen kode berikut. Melakukannya memastikan bahwa koneksi ditutup secara otomatis saat 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.  
    }  

Catatan

Untuk menyebarkan aplikasi berkinerja tinggi, Anda harus menggunakan pengumpulan koneksi. Saat Anda menggunakan Penyedia Data .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 Kumpulan Koneksi SQL Server (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 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 (Alat Kebijakan Keamanan Akses Kode) untuk memodifikasi kebijakan keamanan di tingkat mesin, 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 pesan peringatan dan informasi dari server, lihat Peristiwa Koneksi. Untuk informasi selengkapnya tentang kesalahan mesin SQL Server dan pesan kesalahan, lihat Peristiwa dan Kesalahan Mesin Database.

Perhatian

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

Konstruktor

SqlConnection()

Menginisialisasi instans baru kelas SqlConnection.

SqlConnection(String)

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

SqlConnection(String, SqlCredential)

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

Properti

AccessToken

Mendapatkan atau mengatur token akses untuk koneksi.

AccessTokenCallback

Mendapatkan atau mengatur panggilan balik token akses untuk koneksi.

CanCreateBatch

Mendapatkan nilai yang menunjukkan apakah instans DbBatch ini SqlConnection mendukung kelas .

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 sekalipun.

ColumnEncryptionQueryMetadataCacheEnabled

Mendapatkan atau mengatur 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 kebocoran kredensial penyimpanan kunci.

CommandTimeout

Mendapatkan waktu tunggu default (dalam detik) sebelum mengakhiri upaya untuk menjalankan perintah dan menghasilkan kesalahan. Defaultnya adalah 30 detik.

ConnectionString

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

ConnectionTimeout

Mendapatkan waktu untuk menunggu saat mencoba membuat koneksi sebelum mengakhiri upaya dan menghasilkan kesalahan.

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.

FireInfoMessageEventOnUserErrors

Mendapatkan atau mengatur FireInfoMessageEventOnUserErrors properti .

PacketSize

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

RetryLogicProvider

Mendapatkan atau mengatur nilai yang menentukan objek yang terikat ke SqlRetryLogicBaseProvider perintah ini.

ServerProcessId

Mendapatkan Id proses server (SPID) dari koneksi aktif.

ServerVersion

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

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

BeginTransaction()

Memulai transaksi database.

BeginTransaction(IsolationLevel)

Memulai transaksi database dengan tingkat isolasi yang ditentukan.

BeginTransaction(IsolationLevel, String)

Memulai transaksi database dengan tingkat isolasi dan nama transaksi 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 SqlCredential objek .

ChangePassword(String, String)

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

ClearAllPools()

Mengikat 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.

EnlistDistributedTransaction(ITransaction)

Mendaftarkan dalam transaksi yang ditentukan sebagai transaksi terdistribusi.

EnlistTransaction(Transaction)

Mendaftarkan dalam transaksi yang ditentukan sebagai transaksi terdistribusi.

GetSchema()

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

GetSchema(String)

Mengembalikan informasi skema untuk sumber data ini SqlConnection menggunakan string yang ditentukan untuk nama 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.

Open()

Membuka koneksi database dengan pengaturan properti yang ditentukan oleh ConnectionString.

Open(SqlConnectionOverrides)

Membuka koneksi database dengan pengaturan properti yang ditentukan oleh ConnectionString.

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 yang dikumpulkan dan tidak terkumpul.

RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Mendaftarkan penyedia penyimpanan kunci enkripsi kolom. Fungsi ini hanya boleh dipanggil sekali dalam aplikasi. Ini melakukan penyalinan dangkal kamus sehingga aplikasi tidak dapat mengubah daftar penyedia kustom setelah ditetapkan.

Penyedia penyimpanan kunci master kolom bawaan yang tersedia untuk Windows Certificate Store, CNG Store, dan CSP telah didaftarkan sebelumnya.

RegisterColumnEncryptionKeyStoreProvidersOnConnection(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Mendaftarkan penyedia penyimpanan kunci enkripsi pada SqlConnection instans. Jika fungsi ini telah dipanggil, penyedia apa pun yang terdaftar menggunakan metode statis RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>) akan diabaikan. Fungsi ini dapat dipanggil lebih dari sekali. Ini melakukan penyalinan dangkal kamus sehingga aplikasi tidak dapat mengubah daftar penyedia kustom setelah ditetapkan.

ResetStatistics()

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

RetrieveInternalInfo()

Mengembalikan kumpulan pasangan nilai nama properti internal pada titik waktu metode dipanggil.

RetrieveStatistics()

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

Acara

InfoMessage

Terjadi ketika SQL Server mengembalikan pesan peringatan atau informasi.

Implementasi Antarmuka Eksplisit

ICloneable.Clone()

Membuat objek baru yang merupakan salinan instans saat ini.

Berlaku untuk