OleDbConnection.ConnectionString Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur string yang digunakan untuk membuka database.
public:
virtual property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public:
property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
[System.ComponentModel.SettingsBindable(true)]
public override string ConnectionString { get; set; }
[System.Data.DataSysDescription("OleDbConnection_ConnectionString")]
public string ConnectionString { get; set; }
public override string ConnectionString { get; set; }
[<System.ComponentModel.SettingsBindable(true)>]
member this.ConnectionString : string with get, set
[<System.Data.DataSysDescription("OleDbConnection_ConnectionString")>]
member this.ConnectionString : string with get, set
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
Public Property ConnectionString As String
Nilai Properti
Penyedia OLE DB string koneksi yang menyertakan nama sumber data, dan parameter lain yang diperlukan untuk membuat koneksi awal. Nilai default-nya adalah untaian kosong.
Penerapan
- Atribut
Pengecualian
Argumen string koneksi tidak valid telah disediakan atau argumen string koneksi yang diperlukan belum disediakan.
Contoh
Contoh berikut membuat OleDbConnection dan mengatur beberapa propertinya dalam string koneksi.
static void OpenConnection(string connectionString)
{
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
Console.WriteLine("ServerVersion: {0} \nDataSource: {1}",
connection.ServerVersion, connection.DataSource);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
// The connection is automatically closed when the
// code exits the using block.
}
}
Public Sub OpenConnection(ByVal connectionString As String)
Using connection As New OleDbConnection(connectionString)
Try
connection.Open()
Console.WriteLine("Server Version: {0} DataSource: {1}", _
connection.ServerVersion, connection.DataSource)
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
' The connection is automatically closed when the
' code exits the Using block.
End Using
End Sub
Keterangan
ConnectionString dirancang untuk mencocokkan format string koneksi OLE DB sedekat mungkin dengan pengecualian berikut:
Klausa "Provider =
value
" diperlukan. Namun, Anda tidak dapat menggunakan "Penyedia = MSDASQL" karena Penyedia Data .NET Framework untuk OLE DB tidak mendukung Penyedia OLE DB untuk ODBC (MSDASQL). Untuk mengakses sumber data ODBC, gunakan OdbcConnection objek yang ada di System.Data.Odbc namespace layanan.Tidak seperti ODBC atau ADO, string koneksi yang dikembalikan sama dengan set ConnectionStringpengguna , dikurangi informasi keamanan jika
Persist Security Info
diatur kefalse
(default). Penyedia data .NET Framework untuk OLE DB tidak bertahan atau mengembalikan kata sandi dalam string koneksi kecuali Anda mengaturPersist Security Info
kata kunci ketrue
(tidak disarankan). Untuk mempertahankan tingkat keamanan yang tinggi, sangat disarankan agar Anda menggunakanIntegrated Security
kata kunci denganPersist Security Info
diatur kefalse
.
Anda dapat menggunakan ConnectionString properti untuk menyambungkan ke berbagai sumber data. Contoh berikut mengilustrasikan beberapa kemungkinan string koneksi.
"Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=Yes"
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\bin\LocalAccess40.mdb"
"Provider=SQLOLEDB;Data Source=(local);Integrated Security=SSPI"
Data Source
Jika kata kunci tidak ditentukan dalam string koneksi, penyedia akan mencoba menyambungkan ke server lokal jika tersedia.
Untuk informasi selengkapnya tentang string koneksi, lihat Menggunakan Kata Kunci String Koneksi dengan SQL Server Native Client.
ConnectionString Properti hanya dapat diatur ketika koneksi ditutup. Banyak nilai string koneksi memiliki properti baca-saja yang sesuai. Ketika string koneksi diatur, properti ini diperbarui, kecuali ketika kesalahan terdeteksi. Dalam hal ini, tidak ada properti yang diperbarui. OleDbConnection properti hanya mengembalikan pengaturan yang terkandung dalam ConnectionString.
Mereset ConnectionString pada koneksi tertutup mengatur ulang semua nilai string koneksi dan properti terkait. Ini termasuk kata sandi. Misalnya, jika Anda mengatur string koneksi yang menyertakan "Katalog Awal= AdventureWorks", lalu mengatur ulang string koneksi ke "Provider= SQLOLEDB; Sumber Data= MySQLServer; IntegratedSecurity=SSPI", Database properti tidak lagi diatur ke AdventureWorks. (Nilai Katalog Awal string koneksi sesuai dengan Database
properti .)
Validasi awal string koneksi dilakukan saat properti diatur. Jika nilai untuk Provider
, Connect Timeout
, Persist Security Info
, atau OLE DB Services
disertakan dalam string, nilai-nilai ini akan diperiksa. Ketika aplikasi memanggil Open metode , string koneksi sepenuhnya divalidasi. Jika string koneksi berisi properti yang tidak valid atau tidak didukung, pengecualian run-time, seperti ArgumentException, dihasilkan.
Perhatian
Dimungkinkan untuk menyediakan informasi koneksi untuk OleDbConnection dalam file Universal Data Link (UDL) ; namun Anda harus menghindari melakukannya. File UDL tidak dienkripsi dan mengekspos informasi string koneksi dalam teks yang jelas. Karena file UDL adalah sumber daya berbasis file eksternal ke aplikasi Anda, file tersebut tidak dapat diamankan menggunakan .NET Framework.
Format dasar string koneksi menyertakan serangkaian pasangan kata kunci/nilai yang dipisahkan oleh titik koma. Tanda sama dengan (=) menghubungkan setiap kata kunci dan nilainya. Untuk menyertakan nilai yang berisi tanda titik koma, karakter tanda kutip tunggal, atau karakter kutipan ganda, nilai harus diapit dalam tanda kutip ganda. Jika nilai berisi titik koma dan karakter tanda kutip ganda, nilai dapat diapit dalam tanda kutip tunggal. Tanda kutip tunggal juga berguna jika nilai dimulai dengan karakter kutipan ganda. Sebaliknya, tanda kutip ganda dapat digunakan jika nilai dimulai dengan tanda kutip tunggal. Jika nilai berisi karakter tanda kutip tunggal dan tanda kutip ganda, karakter tanda kutip yang digunakan untuk mengapit nilai harus digandakan setiap kali nilai terjadi dalam nilai.
Untuk menyertakan spasi sebelumnya atau di belakang dalam nilai string, nilai harus diapit dalam tanda kutip tunggal atau tanda kutip ganda. Setiap spasi di depan atau di belakang di sekitar nilai bilangan bulat, Boolean, atau enumerasi diabaikan, bahkan jika diapit dalam tanda kutip. Namun, spasi dalam kata kunci atau nilai harfiah string dipertahankan. Tanda kutip tunggal atau ganda dapat digunakan dalam string koneksi tanpa menggunakan pemisah (misalnya, Data Source= my'Server
atau Data Source= my"Server
) kecuali karakter tanda kutip adalah karakter pertama atau terakhir dalam nilai.
Untuk menyertakan tanda sama dengan (=) dalam kata kunci atau nilai, itu harus didahului oleh tanda sama dengan lainnya. Misalnya, dalam string koneksi hipotetis
"key==word=value"
kata kuncinya adalah "key=word" dan nilainya adalah "value".
Jika kata kunci tertentu dalam pasangan kata kunci=nilai terjadi beberapa kali dalam string koneksi, kemunculan terakhir yang tercantum digunakan dalam kumpulan nilai.
Kata kunci tidak peka huruf besar/kecil.
Perhatian
Anda harus berhati-hati saat membuat string koneksi berdasarkan input pengguna, misalnya, saat mengambil informasi ID pengguna dan kata sandi dari kotak dialog dan menambahkannya ke string koneksi. Aplikasi harus memastikan bahwa pengguna tidak dapat menyematkan parameter string koneksi tambahan dalam nilai-nilai ini, misalnya, memasukkan kata sandi sebagai "validpassword; database= somedb" dalam upaya untuk melampirkan ke database yang berbeda. Jika Anda menggunakan parameter string koneksi Properti yang Diperluas untuk koneksi OLE DB, hindari meneruskan ID pengguna dan kata sandi karena Anda harus menghindari penyimpanan ID pengguna dan kata sandi dalam teks yang jelas jika Anda bisa, dan karena pengaturan Persist Security Info= false
default tidak memengaruhi Extended Properties
parameter.