Csharp/CSharp Tutorial/ADO.Net/SqlException
Catch SqlClient.SqlException
<source lang="csharp">using System; using System.Data; using System.Data.SqlClient; class MainClass {
static void Main() { SqlConnection conn = new SqlConnection(@"data source = .\sqlexpress;integrated security = true;database = northwind"); SqlCommand cmd = conn.CreateCommand(); cmd.rumandType = CommandType.StoredProcedure; cmd.rumandText = "sp_DbException_1"; try { conn.Open(); cmd.ExecuteNonQuery(); } catch (System.Data.SqlClient.SqlException ex) { Console.WriteLine("Source: " + ex.Source); Console.WriteLine("Number: "+ ex.Number.ToString()); Console.WriteLine("Message: "+ ex.Message); Console.WriteLine("Class: "+ ex.Class.ToString ()); Console.WriteLine("Procedure: "+ ex.Procedure.ToString()); Console.WriteLine("Line Number: "+ex.LineNumber.ToString()); Console.WriteLine("Server: "+ ex.Server.ToString()); } catch (System.Exception ex) { Console.WriteLine("Source: " + ex.Source); Console.WriteLine("Exception Message: " + ex.Message); } finally { if (conn.State == ConnectionState.Open) { Console.WriteLine("Finally block closing the connection"); conn.Close(); } } }
}</source>
Catch SqlException when opening connection
<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using System.Data.OleDb; using System.Data.SqlClient; using System.IO; public class MainClass{
public static void Main(){ string ConnectionString ="server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI;"; SqlConnection conn = new SqlConnection(ConnectionString); try { conn.Open(); } catch(SqlException ae) { Console.WriteLine("{0}: Threw an Error: ***{1}***"+ "with SqlServer Code {2}", ae.Errors[0].Server, ae.Errors[0].Message,ae.Errors[0].Number); } }
}</source>
Loop through all errors
<source lang="csharp">using System; using System.Data; using System.Data.SqlClient; class MainClass {
static void Main() { SqlConnection conn = new SqlConnection(@"data source = .\sqlexpress;integrated security = true;database = northwnd"); SqlCommand cmd = conn.CreateCommand(); cmd.rumandType = CommandType.StoredProcedure; cmd.rumandText = "error command"; try { conn.Open(); cmd.ExecuteNonQuery(); } catch (System.Data.SqlClient.SqlException ex) { for (int i = 0; i < ex.Errors.Count; i++) { Console.WriteLine("Index #" + i); Console.WriteLine("Exception: " + ex.Errors[i].ToString() ); Console.WriteLine("Number: " + ex.Errors[i].Number.ToString() ); } } catch (System.Exception ex) { Console.WriteLine("Source: " + ex.Source); Console.WriteLine("Exception Message: " + ex.Message); } finally { if (conn.State == ConnectionState.Open) { Console.WriteLine("Finally block closing the connection"); conn.Close(); } } }
}</source>
Index #0 Exception: System.Data.SqlClient.SqlError: Cannot open database "northwnd" requested by the login. T he login failed. Number: 4060 Index #1 Exception: System.Data.SqlClient.SqlError: Login failed for user "nfex\Joe". Number: 18456