Aracılığıyla paylaş


SqlCommand.ExecuteScalar Yöntem

Tanım

Sorguyu yürütür ve sorgu tarafından döndürülen sonuç kümesindeki ilk satırın ilk sütununu döndürür. Ek sütunlar veya satırlar yoksayılır.

public:
 override System::Object ^ ExecuteScalar();
public override object ExecuteScalar();
override this.ExecuteScalar : unit -> obj
Public Overrides Function ExecuteScalar () As Object

Döndürülenler

Sonuç kümesindeki ilk satırın ilk sütunu veya sonuç kümesi boşsa null başvuru ( Nothing Visual Basic'te). En fazla 2033 karakter döndürür.

Özel durumlar

SqlDbType olarak ayarlandığında Streamİkili veya VarBinary dışında bir değer kullanıldıValue. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.

-veya-

SqlDbType olarak ayarlandığında TextReaderChar, NChar, NVarChar, VarChar veya Xml dışında bir değer kullanıldıValue.

-veya-

olarak ayarlandığında XmlReader Xml dışında bir SqlDbType değer kullanıldıValue.

Kilitli bir satırda komut yürütülürken bir özel durum oluştu. Bu özel durum, Microsoft .NET Framework sürüm 1.0 kullanırken oluşturulmaz.

-veya-

Akış işlemi sırasında zaman aşımı oluştu. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.

Akış SqlConnection işlemi sırasında kapatılan veya bırakılan. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.

Akış işlemi sırasında bir Stream veya XmlReaderTextReader nesnesinde hata oluştu. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.

, StreamXmlReader veya TextReader nesnesi bir akış işlemi sırasında kapatıldı. Akış hakkında daha fazla bilgi için bkz . SqlClient Akış Desteği.

Örnekler

Aşağıdaki örnek bir SqlCommand oluşturur ve kullanarak ExecuteScalaryürütür. Örnekte, tabloya eklenecek yeni değeri temsil eden bir dize ve veri kaynağına bağlanmak için kullanılacak bir dize geçirilir. yeni bir satır eklenirse işlev yeni Identity sütun değerini döndürür, hata durumunda 0.

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

public class Sample
{

    public void CreateSqlCommand(
        string queryString, SqlConnection connection)
    {
        SqlCommand command = new
            SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteScalar();
        connection.Close();
    }

Açıklamalar

Veritabanından ExecuteScalar tek bir değer (örneğin, bir toplama değeri) almak için yöntemini kullanın. Bunun için yöntemini kullanmaktan ExecuteReader daha az kod gerekir ve ardından tek değeri oluşturmak için gereken işlemleri bir SqlDataReadertarafından döndürülen verileri kullanarak gerçekleştirmeniz gerekir.

Tipik ExecuteScalar bir sorgu aşağıdaki C# örneğinde olduğu gibi biçimlendirilebilir:

cmd.CommandText = "SELECT COUNT(*) FROM dbo.region";
Int32 count = (Int32) cmd.ExecuteScalar();

Şunlara uygulanır