Bagikan melalui


SqlCommandBuilder Kelas

Definisi

Secara otomatis menghasilkan perintah tabel tunggal yang digunakan untuk merekonsiliasi perubahan yang DataSet dibuat pada database SQL Server terkait. Kelas ini tidak dapat diwariskan.

public ref class SqlCommandBuilder sealed : System::Data::Common::DbCommandBuilder
public sealed class SqlCommandBuilder : System.Data.Common.DbCommandBuilder
type SqlCommandBuilder = class
    inherit DbCommandBuilder
Public NotInheritable Class SqlCommandBuilder
Inherits DbCommandBuilder
Warisan
SqlCommandBuilder

Contoh

Contoh berikut menggunakan SqlCommand, bersama SqlDataAdapter dan SqlConnection, untuk memilih baris dari sumber data. Contohnya diteruskan string koneksi, string kueri yang merupakan pernyataan TRANSACT-SQL SELECT, dan string yang merupakan nama tabel database. Contoh kemudian membuat SqlCommandBuilder.

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

namespace SqlCommandBuilderCS
{
    class Program
    {
        static void Main()
        {
            string cnnst = "";
            string queryst = "";
            string tablen = "";
            DataSet ds = SelectSqlRows(cnnst, queryst, tablen);

        }

        public static DataSet SelectSqlRows(string connectionString,
            string queryString, string tableName)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.SelectCommand = new SqlCommand(queryString, connection);
                SqlCommandBuilder builder = new SqlCommandBuilder(adapter);

                connection.Open();

                DataSet dataSet = new DataSet();
                adapter.Fill(dataSet, tableName);

                //code to modify data in DataSet here

                builder.GetUpdateCommand();

                //Without the SqlCommandBuilder this line would fail
                adapter.Update(dataSet, tableName);

                return dataSet;
            }
        }

Keterangan

SqlDataAdapter tidak secara otomatis menghasilkan pernyataan Transact-SQL yang diperlukan untuk merekonsiliasi perubahan yang DataSet dilakukan pada dengan instans SQL Server terkait. Namun, Anda dapat membuat SqlCommandBuilder objek untuk secara otomatis menghasilkan pernyataan Transact-SQL untuk pembaruan tabel tunggal jika Anda mengatur SelectCommand properti dari SqlDataAdapter. Kemudian, setiap pernyataan Transact-SQL tambahan yang tidak Anda tetapkan dihasilkan oleh SqlCommandBuilder.

mendaftarkan SqlCommandBuilder dirinya sebagai pendengar untuk RowUpdating peristiwa setiap kali Anda mengatur DataAdapter properti . Anda hanya dapat mengaitkan satu SqlDataAdapter atau SqlCommandBuilder objek satu sama lain pada satu waktu.

Untuk menghasilkan pernyataan INSERT, UPDATE, atau DELETE, SqlCommandBuilder menggunakan SelectCommand properti untuk mengambil sekumpulan metadata yang diperlukan secara otomatis. Jika Anda mengubah SelectCommand setelah metadata diambil, seperti setelah pembaruan pertama, Anda harus memanggil RefreshSchema metode untuk memperbarui metadata.

SelectCommand juga harus mengembalikan setidaknya satu kunci primer atau kolom unik. Jika tidak ada, pengecualian InvalidOperation dihasilkan, dan perintah tidak dihasilkan.

SqlCommandBuilder juga menggunakan properti , CommandTimeout, dan Transaction yang dirujuk ConnectionSelectCommandoleh . Pengguna harus memanggil RefreshSchema jika satu atau beberapa properti ini dimodifikasi, atau jika properti itu SelectCommand sendiri diganti. InsertCommandJika tidak, properti , UpdateCommand, dan DeleteCommand mempertahankan nilai sebelumnya.

Jika Anda memanggil Dispose, SqlCommandBuilder disasosiasi dari SqlDataAdapter, dan perintah yang dihasilkan tidak lagi digunakan.

Konstruktor

SqlCommandBuilder()

Menginisialisasi instans baru kelas SqlCommandBuilder.

SqlCommandBuilder(SqlDataAdapter)

Menginisialisasi instans SqlCommandBuilder baru kelas dengan objek terkait SqlDataAdapter .

Properti

CatalogLocation

Mengatur atau mendapatkan untuk instans CatalogLocationSqlCommandBuilder kelas .

CatalogSeparator

Mengatur atau mendapatkan string yang digunakan sebagai pemisah katalog untuk instans SqlCommandBuilder kelas .

DataAdapter

Mendapatkan atau mengatur SqlDataAdapter objek yang pernyataan Transact-SQL-nya dibuat secara otomatis.

QuotePrefix

Mendapatkan atau mengatur karakter awal atau karakter yang akan digunakan saat menentukan SQL Server objek database, seperti tabel atau kolom, yang namanya berisi karakter seperti spasi atau token cadangan.

QuoteSuffix

Mendapatkan atau mengatur karakter akhir yang akan digunakan saat menentukan SQL Server objek database, seperti tabel atau kolom, yang namanya berisi karakter seperti spasi atau token cadangan.

SchemaSeparator

Mendapatkan atau mengatur karakter yang akan digunakan untuk pemisah antara pengidentifikasi skema dan pengidentifikasi lainnya.

Metode

DeriveParameters(SqlCommand)

Mengambil informasi parameter dari prosedur tersimpan yang ditentukan dalam SqlCommand dan mengisi Parameters kumpulan objek yang ditentukan SqlCommand .

GetDeleteCommand()

Mendapatkan objek yang dihasilkan SqlCommand secara otomatis yang diperlukan untuk melakukan penghapusan pada database.

GetDeleteCommand(Boolean)

Mendapatkan objek yang dihasilkan SqlCommand secara otomatis yang diperlukan untuk melakukan penghapusan pada database.

GetInsertCommand()

Mendapatkan objek yang dihasilkan SqlCommand secara otomatis yang diperlukan untuk melakukan penyisipan pada database.

GetInsertCommand(Boolean)

Mendapatkan objek yang dihasilkan SqlCommand secara otomatis yang diperlukan untuk melakukan penyisipan pada database.

GetUpdateCommand()

Mendapatkan objek yang dihasilkan SqlCommand secara otomatis yang diperlukan untuk melakukan pembaruan pada database.

GetUpdateCommand(Boolean)

Mendapatkan objek yang dihasilkan SqlCommand secara otomatis yang diperlukan untuk melakukan pembaruan pada database.

QuoteIdentifier(String)

Secara otomatis menghasilkan perintah tabel tunggal yang digunakan untuk merekonsiliasi perubahan yang DataSet dibuat pada database SQL Server terkait. Kelas ini tidak dapat diwariskan.

UnquoteIdentifier(String)

Mengingat pengidentifikasi yang dikutip, mengembalikan bentuk pengidentifikasi yang tidak dikutip yang benar. Ini termasuk membuka dengan benar tanda kutip yang disematkan dalam pengidentifikasi.

Berlaku untuk