using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; namespace NullCheck { class Program { static void Main(string[] args) { StringBuilder errorMessages = new StringBuilder(); SqlConnection conn = null; SqlCommand cmdINSERT = null; try { conn = new SqlConnection("Data Source=(local);Initial Catalog=NULLCHECK;Integrated Security=SSPI"); conn.Open(); cmdINSERT = new SqlCommand("INSERT INTO ShortCharacter (MotherId, FatherId) VALUES (@MotherId, @FatherId)", conn); SqlParameter param_MotherId = new SqlParameter("@MotherId", System.Data.SqlDbType.UniqueIdentifier); param_MotherId.Direction = ParameterDirection.Input; cmdINSERT.Parameters.Add(param_MotherId); SqlParameter param_FatherId = new SqlParameter("@FatherId", System.Data.SqlDbType.UniqueIdentifier); param_FatherId.Direction = ParameterDirection.Input; cmdINSERT.Parameters.Add(param_FatherId); param_MotherId.Value = DBNull.Value; param_FatherId.Value = SqlGuid.Null; cmdINSERT.ExecuteNonQuery(); param_MotherId.Value = null; param_FatherId.Value = null; cmdINSERT.ExecuteNonQuery(); } catch (SqlException ex) { for (int i = 0; i < ex.Errors.Count; i++) { errorMessages.Append("Index #" + i + "\n" + "Message: " + ex.Errors[i].Message + "\n" + "LineNumber: " + ex.Errors[i].LineNumber + "\n" + "Source: " + ex.Errors[i].Source + "\n" + "Procedure: " + ex.Errors[i].Procedure + "\n"); } Console.WriteLine(errorMessages.ToString()); } finally { if (conn != null) { conn.Close(); } } } } }