using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.Data.SqlTypes; namespace GetGUID { class Program { static void Main(string[] args) { StringBuilder errorMessages = new StringBuilder(); SqlConnection conn = null; SqlCommand cmdProc1 = null; SqlCommand cmdProc2 = null; try { conn = new SqlConnection("Data Source=(local);Initial Catalog=GUIDTEST;Integrated Security=SSPI"); conn.Open(); cmdProc1 = new SqlCommand("usp_AddOrder", conn); cmdProc1.CommandType = CommandType.StoredProcedure; SqlParameter param_OrderGUID = new SqlParameter("@OrderGUID", System.Data.SqlDbType.UniqueIdentifier); param_OrderGUID.Direction = ParameterDirection.Output; cmdProc1.Parameters.Add(param_OrderGUID); cmdProc1.ExecuteNonQuery(); Console.WriteLine(String.Format("usp_AddOrder Returned GUID: {0}", param_OrderGUID.Value.ToString())); cmdProc2 = new SqlCommand("usp_AddOrder2", conn); cmdProc2.CommandType = CommandType.StoredProcedure; SqlDataReader reader = cmdProc2.ExecuteReader(); while (reader.Read()) { Console.WriteLine(String.Format("usp_AddOrder2 Returned GUID: {0}", reader[0])); } } 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(); } } } } }