Ketika saya mengalami kesalahan ini di Visual Studio,
“Kesalahan yang berhubungan dengan jaringan atau spesifik-contoh terjadi saat membuat koneksi ke SQL Server. Server tidak ditemukan atau tidak dapat diakses. Verifikasi bahwa nama instance sudah benar dan SQL Server dikonfigurasi untuk memungkinkan koneksi jarak jauh. (penyedia: Penyedia Pipa Bernama, kesalahan: 40 - Tidak dapat membuka koneksi ke SQL Server) ”
... itu selama eksekusi kode C # berikut, yang berusaha untuk mendapatkan data SQL Server saya untuk menampilkannya dalam kotak. Pemutusan terjadi tepat pada baris yang mengatakan connect.Open ():
using (var connect = Connections.mySqlConnection)
{
const string query = "SELECT Name, Birthdate, Narrative FROM Friends";
using (var command = new SqlCommand(query, connect))
{
connect.Open();
using (var dr = command.ExecuteReader())
{
while (dr.Read())
{
// blah
}
}
}
}
Itu tidak bisa dijelaskan karena permintaan SQL sangat sederhana, saya memiliki string koneksi yang tepat, dan server database tersedia. Saya memutuskan untuk menjalankan query SQL aktual secara manual sendiri di SQL Management Studio dan itu berjalan dengan baik dan menghasilkan beberapa catatan. Tapi satu hal yang menonjol dalam hasil kueri: ada beberapa teks HTML yang dikodekan dengan tidak benar di dalam bidang tipe varchar (max) di dalam tabel Friends (khususnya, beberapa simbol komentar yang dikodekan dari jenis yang <!--
tersimpan dalam data kolom "Narrative"). Baris data tersangka tampak seperti ini:
Name Birthdate Narrative
==== ========= ==============
Fred 21-Oct-79 <!--HTML Comment -->Once upon a time...
Perhatikan simbol HTML yang disandikan " <
", yang merupakan karakter "<". Entah bagaimana itu masuk ke dalam database dan kode C # saya tidak bisa mengambilnya! Gagal setiap kali tepat di jalur connect.Open ()! Setelah saya mengedit secara manual satu baris data di tabel database Friends dan memasukkan karakter "<" yang diterjemahkan, semuanya bekerja! Seperti apa seharusnya baris itu:
Name Birthdate Narrative
==== ========= ==============
Fred 21-Oct-79 <!--HTML Comment -->Once upon a time...
Saya mengedit satu baris buruk yang saya miliki dengan menggunakan pernyataan UPDATE sederhana di bawah ini. Tetapi jika Anda memiliki beberapa baris HTML disandikan yang menyinggung, Anda mungkin perlu pernyataan UPDATE yang lebih rumit yang menggunakan fungsi REPLACE:
UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '<%'
Jadi, moral dari cerita ini (setidaknya dalam kasus saya), membersihkan konten HTML Anda sebelum menyimpannya di database dan Anda tidak akan mendapatkan kesalahan SQL Server samar ini di tempat pertama! (Eh, membersihkan / mendekode ulang konten HTML Anda dengan benar adalah subjek diskusi lain yang layak dilakukan pencarian StackOverflow terpisah jika Anda memerlukan informasi lebih lanjut!)