Aracılığıyla paylaş


SqlError Sınıf

Tanım

SQL Server tarafından döndürülen uyarı veya hatayla ilgili bilgileri toplar.

public ref class SqlError sealed
[System.Serializable]
public sealed class SqlError
public sealed class SqlError
[<System.Serializable>]
type SqlError = class
type SqlError = class
Public NotInheritable Class SqlError
Devralma
SqlError
Öznitelikler

Örnekler

Aşağıdaki örnek koleksiyondaki her SqlError birini SqlErrorCollection görüntüler.

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

class Program
{
    static void Main()
    {
        string s = GetConnectionString();
        ShowSqlException(s);
        Console.ReadLine();
    }
    public static void ShowSqlException(string connectionString)
    {
        string queryString = "EXECUTE NonExistantStoredProcedure";

        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            SqlCommand command = new SqlCommand(queryString, connection);
            try
            {
                command.Connection.Open();
                command.ExecuteNonQuery();
            }
            catch (SqlException ex)
            {
                DisplaySqlErrors(ex);
            }
        }
    }

    private static void DisplaySqlErrors(SqlException exception)
    {
        for (int i = 0; i < exception.Errors.Count; i++)
        {
            Console.WriteLine("Index #" + i + "\n" +
                "Error: " + exception.Errors[i].ToString() + "\n");
        }
        Console.ReadLine();
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file.
        return "Data Source=(local);Initial Catalog=AdventureWorks;"
            + "Integrated Security=SSPI";
    }
}

Açıklamalar

Bu sınıf, bir hata oluştuğunda SQL Server için .NET Framework Veri Sağlayıcısı tarafından oluşturulur. örneği SqlError , tarafından oluşturulur ve yönetilir SqlErrorCollectionve bu da sınıfı tarafından SqlException oluşturulur.

Önem derecesi 10 veya daha az olan iletiler bilgilendiricidir ve kullanıcının girdiği bilgilerdeki hatalardan kaynaklanan sorunları gösterir. 11 ile 16 arasında önem derecesi düzeyleri kullanıcı tarafından oluşturulur ve kullanıcı tarafından düzeltilebilir. 17 ile 25 arasında önem derecesi, yazılım veya donanım hatalarını gösterir. Düzey 17, 18 veya 19 hatası oluştuğunda, belirli bir deyimi yürütemeseniz de çalışmaya devam edebilirsiniz.

Önem SqlConnection düzeyi 19 veya daha az olduğunda açık kalır. Önem derecesi 20 veya daha yüksek olduğunda, sunucu genellikle öğesini SqlConnectionkapatır. Ancak kullanıcı bağlantıyı yeniden açabilir ve devam edebilir. Her iki durumda da komutunu yürüten yöntem tarafından bir SqlException oluşturulur.

SQL Server tarafından oluşturulan hatalar hakkında daha fazla bilgi için bkz. Veritabanı Altyapısı Hatalarının Nedeni ve Çözümü. Önem derecesi düzeyleri hakkında daha fazla bilgi için bkz. Veritabanı Altyapısı Hata Önem Dereceleri.

Özellikler

Class

SQL Server döndürülen hatanın önem düzeyini alır.

LineNumber

Transact-SQL komut toplu işleminin veya hatayı içeren saklı yordamın içindeki satır numarasını alır.

Message

Hatayı açıklayan metni alır.

Number

Hata türünü tanımlayan bir sayı alır.

Procedure

Hatayı oluşturan saklı yordamın veya uzak yordam çağrısının (RPC) adını alır.

Server

Hatayı oluşturan SQL Server örneğinin adını alır.

Source

Hatayı oluşturan sağlayıcının adını alır.

State

Bazı hata iletileri, Veritabanı Altyapısı kodunda birden çok noktada oluşturulabilir. Örneğin, birkaç farklı koşul için 1105 hatası oluşturulabilir. Hata oluşturan her belirli koşul benzersiz bir durum kodu atar.

Yöntemler

ToString()

Hata iletisinin tam metnini alır.

Şunlara uygulanır

Ayrıca bkz.