Aracılığıyla paylaş


SqlCommandBuilder Sınıf

Tanım

bir veritabanında yapılan değişiklikleri ilişkili SQL Server veritabanıyla mutabık hale getirmek için DataSet kullanılan tek tablolu komutları otomatik olarak oluşturur. Bu sınıf devralınamaz.

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
Devralma
SqlCommandBuilder

Örnekler

Aşağıdaki örnekte, veri kaynağından SqlCommandsatır seçmek için , ve ile birlikte SqlDataAdapterSqlConnectionkullanılır. Örnek bir bağlantı dizesi, Transact-SQL SELECT deyimi olan bir sorgu dizesi ve veritabanı tablosunun adı olan bir dize geçirilir. Örnek daha sonra bir SqlCommandBuilderoluşturur.

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;
            }
        }

Açıklamalar

, SqlDataAdapter SQL Server ilişkili örneğiyle yapılan değişiklikleri uzlaştırmak için DataSet gereken Transact-SQL deyimlerini otomatik olarak oluşturmaz. Ancak, özelliğini SqlDataAdapterayarlarsanız SelectCommand tek tablolu güncelleştirmeler için Transact-SQL deyimlerini otomatik olarak oluşturmak üzere bir SqlCommandBuilder nesnesi oluşturabilirsiniz. Ardından, ayarlamadığınız tüm ek Transact-SQL deyimleri tarafından SqlCommandBuilderoluşturulur.

özelliği SqlCommandBuilder her ayarlandığında DataAdapter olaylar için RowUpdating dinleyici olarak kaydeder. Bir kerede yalnızca bir SqlDataAdapter nesneyi veya SqlCommandBuilder nesneyi birbiriyle ilişkilendirebilirsiniz.

INSERT, UPDATE veya DELETE deyimleri oluşturmak için, SqlCommandBuilder gerekli bir meta veri kümesini otomatik olarak almak için özelliğini kullanır SelectCommand . Meta veriler alındıktan sonra değerini değiştirirseniz SelectCommand (örneğin, ilk güncelleştirmeden sonra) meta verileri güncelleştirmek için yöntemini çağırmanız RefreshSchema gerekir.

ayrıca SelectCommand en az bir birincil anahtar veya benzersiz sütun döndürmelidir. Hiçbiri yoksa, bir InvalidOperation özel durumu oluşturulur ve komutlar oluşturulmaz.

, SqlCommandBuilder tarafından SelectCommandbaşvuruda bulunan Connection, CommandTimeoutve Transaction özelliklerini de kullanır. Kullanıcı, bu özelliklerden biri veya daha fazlası değiştirilirse veya kendisi değiştirilirse SelectCommand çağrısı RefreshSchema yapmalıdır. InsertCommandAksi takdirde , UpdateCommandve DeleteCommand özellikleri önceki değerlerini korur.

çağrısı Disposeyaparsanız , SqlCommandBuilder ile ilişkilendirilmez SqlDataAdapterve oluşturulan komutlar artık kullanılmaz.

Oluşturucular

SqlCommandBuilder()

SqlCommandBuilder sınıfının yeni bir örneğini başlatır.

SqlCommandBuilder(SqlDataAdapter)

İlişkili SqlDataAdapter nesneyle sınıfının yeni bir örneğini SqlCommandBuilder başlatır.

Özellikler

CatalogLocation

Sınıfının bir örneğinin öğesini SqlCommandBuilder ayarlar veya alırCatalogLocation.

CatalogSeparator

Sınıfının bir örneği için katalog ayırıcısı olarak kullanılan bir dizeyi SqlCommandBuilder ayarlar veya alır.

DataAdapter

Transact-SQL deyimlerinin otomatik olarak oluşturulduğu nesneyi SqlDataAdapter alır veya ayarlar.

QuotePrefix

Adları boşluk veya ayrılmış belirteç gibi karakterler içeren tablolar veya sütunlar gibi SQL Server veritabanı nesnelerini belirtirken kullanılacak başlangıç karakterini veya karakterleri alır veya ayarlar.

QuoteSuffix

Adları boşluk veya ayrılmış belirteç gibi karakterler içeren tablolar veya sütunlar gibi SQL Server veritabanı nesnelerini belirtirken kullanılacak bitiş karakterini veya karakterleri alır veya ayarlar.

SchemaSeparator

Şema tanımlayıcısı ile diğer tanımlayıcılar arasındaki ayırıcı için kullanılacak karakteri alır veya ayarlar.

Yöntemler

DeriveParameters(SqlCommand)

içinde SqlCommand belirtilen saklı yordamdan parametre bilgilerini alır ve belirtilen SqlCommand nesnenin Parameters koleksiyonunu doldurur.

GetDeleteCommand()

Veritabanında silme işlemleri gerçekleştirmek için gereken otomatik olarak oluşturulan SqlCommand nesneyi alır.

GetDeleteCommand(Boolean)

Veritabanında silme işlemleri gerçekleştirmek için gereken otomatik olarak oluşturulan SqlCommand nesneyi alır.

GetInsertCommand()

Veritabanında eklemeleri gerçekleştirmek için gereken otomatik olarak oluşturulan SqlCommand nesneyi alır.

GetInsertCommand(Boolean)

Veritabanında eklemeleri gerçekleştirmek için gereken otomatik olarak oluşturulan SqlCommand nesneyi alır.

GetUpdateCommand()

Veritabanında güncelleştirmeleri gerçekleştirmek için gereken otomatik olarak oluşturulan SqlCommand nesneyi alır.

GetUpdateCommand(Boolean)

Veritabanında güncelleştirmeleri gerçekleştirmek için gereken otomatik olarak oluşturulan SqlCommand nesneyi alır.

QuoteIdentifier(String)

bir veritabanında yapılan değişiklikleri ilişkili SQL Server veritabanıyla mutabık hale getirmek için DataSet kullanılan tek tablolu komutları otomatik olarak oluşturur. Bu sınıf devralınamaz.

UnquoteIdentifier(String)

Tırnak içine alınmış bir tanımlayıcı verildiğinde, bu tanımlayıcının doğru tırnak içine alınmamış biçimini döndürür. Bu, tanımlayıcıdaki eklenmiş tırnakların doğru şekilde özetini kaldırmayı içerir.

Şunlara uygulanır