Anda sedang offline saat ini, menunggu internet Anda untuk menyambung kembali

CARA untuk: Mengelola tanda kutip di dipenggal SQL literal dengan menggunakan ADO.NET dan Visual Basic.NET

PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.

Klik disini untuk melihat versi Inggris dari artikel ini:311023
Untuk Microsoft Visual C#.NET versi ini Pasal, lihat 311021.
Untuk versi Microsoft Visual Basic 6.0 ini Pasal, lihat 178070.

Artikel ini merujuk kepada berikut Microsoft.NET Framework kelas perpustakaan namespaces:
  • System.data.SqlClient
  • System.text
  • System.data.OleDb

DALAM TUGAS INI

RINGKASAN
Artikel ini menunjukkan bagaimana Anda dapat mengatur kutipan tanda di nilai string ketika Anda menggabungkan pernyataan SQL. Artikel menyediakan solusi sampel yang menggunakan Sql dikelola penyedia (Microsoft SQL Server). Artikel ini juga menyediakan contoh Microsoft Access yang menggunakan Microsoft OLE penyedia DB dan data yang terkait dengan akses kelas.

back to the top
Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang diperlukan:
  • Microsoft Windows XP, Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, atau Microsoft Windows 2000 Advanced Server
  • Microsoft.NET Framework
  • Microsoft Access
  • Microsoft SQL Server
back to the top

Menciptakan Visual Basic.Aplikasi NET konsol

Langkah ini menunjukkan bagaimana untuk membuat baru Visual Basic.NET Aplikasi konsol bernama QuoteDemo.
  1. Mulai Microsoft Visual Studio.NET.
  2. Pada Berkas menu, titik Baru, lalu klik Project.
  3. Dalam Proyek baru kotak dialog, klik Proyek-proyek Visual Basic di bawah Jenis proyek, lalu klik Aplikasi konsol di bawah Pola acu.
  4. Dalam Nama kotak teks, ketik QuoteDemo.
  5. Klik Oke untuk membuka proyek.
back to the top

Sampel yang mengelola tanda kutip di dipenggal pernyataan SQL

Dalam bagian ini, Anda membuat contoh yang menunjukkan cara menggunakan The Ganti metode String kelas. Sampel ini menggantikan tanda kutip tunggal dengan dua berdekatan tanda kutip tunggal untuk memastikan bahwa data diformat dengan benar ketika Anda menggabungkan nilai-nilai untuk sebuah pernyataan SQL. Kode ini demonstrasi menggunakan SQL MASUKKAN pernyataan di Karyawan Tabel Northwind database.

Keduanya SQL Server dan akses sampel yang terkandung dalam artikel ini referensi FixString metode. Anda harus memasukkan metode ini untuk contoh baik untuk berfungsi dengan baik. Langkah-langkah berikut menunjukkan cara untuk melakukannya:
  1. Klik kanan Module1.VB Solusi Explorer, dan kemudian klik Lihat kode.
  2. Menambahkan metode berikut untuk modul:
    Private Function FixString(ByVal SourceString As String, ByVal StringToReplace As String, ByVal StringReplacement As String)        SourceString = SourceString.Replace(StringToReplace, StringReplacement)        Return SourceStringEnd Function						
    Metode sebelumnya menggunakan Ganti metode String objek. Anda dapat menggunakan metode ini untuk mengganti karakter dengan lain pilihan. Parameter input termasuk asli (stringSourceString), string yang Anda ingin mengganti ()StringToReplace), dan string yang ingin Anda gunakan ()StringReplacement).

    CATATAN: Untuk substitusi string yang lebih kompleks, lihat berikut Microsoft.NET kelas perpustakaan dokumentasi:
back to the top
  1. Tambahkan referensi namespace berikut untuk Module1.vb:
    Imports System.Data.SqlClientImports System.Text					
  2. Menambahkan metode berikut untuk Module1.vb:
        Private Sub RunSqlDemo()        'Create a variable to hold the last name and the first name.        Dim Fname As String = "Susan"        Dim Lname As String        Console.Write("Type Last Name (SQL Server Sample): ")        Lname = Console.ReadLine()        'Call FixString to replace a single quotation mark with two        'adjacent single quotation marks.        Lname = FixString(Lname, "'", "''")        Console.WriteLine("Modified value: " & Lname)        'Although the Fname variable in this sample is fine,        'run Replace on this variable also.        Fname = FixString(Fname, "'", "''")        'Use a StringBuilder object to build the SQL statement.        Dim sb As New StringBuilder()        sb.Append("INSERT INTO Employees(LastName, FirstName) Values( '")        sb.Append(Lname)        sb.Append("','")        sb.Append(Fname)        sb.Append("')")        'Present the SQL statement to the console, and include the modified        'values.        Console.WriteLine("SQL string: " & sb.ToString())        'Create the connection string.        Dim myConStr As String = "Server=localhost;Database=Northwind;UID=myUserID;PWD=myPassword"        Dim myConn As SqlConnection = New SqlConnection(myConStr)        Dim myCmd As SqlCommand = New SqlCommand(sb.ToString(), myConn)        Try            'Open the connection.            myConn.Open()            myCmd.ExecuteNonQuery()            Console.WriteLine("Values inserted into table (SQL Server Sample)")        Finally            Try                myConn.Close()            Catch            End Try        End Try    End Sub					
    CATATAN: Memodifikasi koneksi SQL Server string dengan benar mencerminkan Anda lingkungan.

  3. Untuk memanggil RunSqlDemo metode, tambahkan kode berikut untuk Utama metode modul:
    RunSqlDemo()					
  4. Pada Berkas menu, klik Simpan semua untuk menyimpan solusi.
  5. Pada Bangun menu, klik Membangun solusi.
  6. Pada Debug menu, klik Mulai tanpa Debugging untuk menjalankan aplikasi.
  7. Saat Anda diminta untuk meminta nilai untuk terakhir nama, ketik nama O'Conner, kemudian tekan MASUKKAN.

    Anda menerima pesan yang mencakup informasi berikut:

    • Bagaimana metode FixString mengubah nama terakhir nilai.
    • Bagaimana string diubah muncul dalam SQL pernyataan.
    • Konfirmasi bahwa nilai tambah untuk database.
    Perhatikan bahwa nama terakhir diubah untuk O'' Conner. SQL Server menafsirkan dua tanda kutip tunggal berdekatan sebagai single tertanam tanda kutip.
back to the top
  1. Tambahkan System.data.OleDb dan System.text rujukan namespace Module1.vb. Referensi namespace daftar akan muncul mirip dengan daftar berikut jika Anda membuat SQL Server contoh sebelumnya:
    Imports System.Data.SqlClientImports System.TextImports System.Data.OleDb 						
    The System.data.SqlClient namespace referensi ini tidak diperlukan jika Anda hanya ingin mengikuti contoh kode akses.
  2. Menambahkan metode berikut untuk Module1.vb:
        Private Sub RunAccessDemo()        'Create a variable to hold the last name and the first name.        Dim Fname As String = "Susan"        Dim Lname As String        Console.Write("Type Last Name (Access Sample): ")        Lname = Console.ReadLine()        'Call FixString to replace a single quotation mark with two         'adjacent single quotation marks.        Lname = FixString(Lname, "'", "''")        Console.WriteLine("Modified value: " & Lname)        'Although the Fname variable in this sample is fine,         'run Replace on the variable also.        Fname = FixString(Fname, "'", "''")        'Use a StringBuilder object to build the SQL statement.        Dim sb As New StringBuilder()        sb.Append("INSERT INTO Employees(LastName, FirstName) Values( '")        sb.Append(Lname)        sb.Append("','")        sb.Append(Fname)        sb.Append("')")        'Present the SQL statement to the console, and include the modified         'values.        Console.WriteLine("SQL string: " & sb.ToString())        'Create the connection string.        Dim myConStr As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _                                 "Data Source=C:\MyDatabases\NWIND.MDB"        Dim myConn As OleDbConnection = New OleDbConnection(myConStr)        Dim myCmd As OleDbCommand = New OleDbCommand(sb.ToString(), myConn)        Try            'Open the connection.            myConn.Open()            myCmd.ExecuteNonQuery()            Console.WriteLine("Values inserted into Employees table! (Access Sample)")        Finally            Try                myConn.Close()            Catch            End Try        End Try    End Sub					
    CATATAN: Memodifikasi koneksi SQL Server string dengan benar mencerminkan Anda lingkungan.

  3. Untuk memanggil RunAccessDemo metode, tambahkan kode berikut untuk Utama metode modul:
    RunAccessDemo()					
    CATATAN: Jika Anda mengikuti langkah-langkah untuk menjalankan sampel SQL Server sebelumnya, dan jika Anda tidak ingin menjalankan RunSqlDemo metode lagi, Anda dapat komentar keluar panggilan untuk RunSqlDemo metode di Utama metode.

  4. Pada Berkas menu, klik Simpan semua untuk menyimpan solusi.
  5. Pada Bangun menu, klik Membangun solusi.
  6. Pada Debug menu, pilih Mulai tanpa Debugging untuk menjalankan aplikasi.
  7. Saat Anda diminta untuk meminta nilai untuk nama, Ketik nama O'Conner, kemudian tekan ENTER.

    Anda menerima pesan yang mencakup informasi berikut:

    • Bagaimana FixString metode memodifikasi nilai nama terakhir.
    • Bagaimana string diubah muncul dalam SQL pernyataan.
    • Konfirmasi bahwa nilai tambah untuk database.
    Perhatikan bahwa nama terakhir diubah untuk O'' Conner. The database menafsirkan dua berdekatan satu tanda kutip sebagai tertanam tanda kutip tunggal.

    Anda dapat mengubah contoh ini sehingga tunggal tanda kutip delimiters dalam pernyataan SQL digantikan oleh ganda tanda kutip. Namun, contoh ini tidak dapat menangani situasi di mana ganda tanda kutip terkandung dalam input string.
back to the top

Pemecahan Masalah

  • Jika Anda tidak menggantikan tanda kutip tunggal dengan dua berdekatan tanda kutip tunggal, Anda menerima kesalahan sintaks yang sama dengan salah satu pesan galat berikut:
    System.data.SqlClient.SQLException: Jalur 1: sintaks salah dekat 'Conner'. Tanda kutip tidak tertutup sebelum karakter string ')
    -atau-
    Unhandled pengecualian: System.data.OleDb.OleDbException: Syntax Error (hilang operator) dalam permintaan ekspresi '' O'Conner', 'Susan')'
  • Ketika Anda menggunakan akses contoh dalam artikel ini, jika Anda tekan ENTER tanpa memberikan masukan setiap saat Anda diminta, Anda akan menerima pesan galat berikut (atau yang serupa):
    LapanganTableName.FieldName tidak boleh nol-panjang string.
    Akses menafsirkan medan string kosong sebagai nol-panjang string. Galat ini terjadi apabila AllowZeroLength properti database lapangan tidak diatur ke Ya. Lihat REFERENSIbagian untuk informasi lebih lanjut.
back to the top
REFERENSI
Untuk informasi tambahan tentang AllowZeroLength properti di akses, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
209098 ACC2000: Menggunakan AllowZeroLength dan diperlukan properti
Untuk dokumentasi dan contoh tentang tugas umum di ADO.NET pemrograman, lihat Website Microsoft berikut: Untuk informasi lebih lanjut tentang cara bermigrasi dari Microsoft ActiveX Data Objects (ADO) untuk Microsoft ADO.NET, lihat Website Microsoft berikut: back to the top
Tanda kutip tunggal

Peringatan: Artikel ini telah diterjemahkan secara otomatis

Properti

ID Artikel: 311023 - Tinjauan Terakhir: 09/24/2011 19:22:00 - Revisi: 2.0

Microsoft ADO.NET 1.1, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft Visual Basic .NET 2003 Standard Edition

  • kbhowtomaster kbsqlclient kbsystemdata kbmt KB311023 KbMtid
Tanggapan
/html>