コード例 #1
0
 public static void EnumerateResults(
     string connectionString,
     string commandText,
     int commandTimeoutSecs,
     ResultsSetHandler handler,
     SqlParameter[] sqlParams = null)
 {
     using (var c = CreateConnection(connectionString))
     {
         EnumerateResults(c, null, commandText, commandTimeoutSecs, handler, sqlParams);
     }
 }
コード例 #2
0
        public static void EnumerateResults(
            TransactionContext tc,
            string commandText,
            int commandTimeoutSecs,
            ResultsSetHandler handler,
            SqlParameter[] sqlParams = null)
        {
            if (!string.IsNullOrEmpty(commandText))
            {
                if (tc.Status == TransactionStatus.NotStarted)
                {
                    tc.Begin();
                }

                EnumerateResults(tc.Connection, tc.Transaction, commandText, commandTimeoutSecs, handler, sqlParams);
            }
        }
コード例 #3
0
        public static void GetSingleResult(
            string connectionString,
            string commandText,
            int commandTimeoutSecs,
            ResultsSetHandler handler,
            SqlParameter[] sqlParams = null)
        {
            using (var c = CreateConnection(connectionString))
                using (var cmd = c.CreateCommand())
                {
                    cmd.CommandTimeout = commandTimeoutSecs;
                    cmd.CommandText    = commandText;

                    try
                    {
                        if (sqlParams != null)
                        {
                            cmd.Parameters.AddRange(sqlParams);
                        }

                        using (var r = cmd.ExecuteReader())
                        {
                            if (r.Read())
                            {
                                handler(r);

                                if (r.Read())
                                {
                                    throw new ApplicationException($"More than 1 result row found in GetSingleResult! - {commandText}");
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        _log.Error("Error getting results set", ex);
                        _log.Error(cmd.CommandText);
                        throw;
                    }
                }
        }
コード例 #4
0
        public static void EnumerateResults(
            SqlConnection conn,
            SqlTransaction tran,
            string commandText,
            int commandTimeoutSecs,
            ResultsSetHandler handler,
            SqlParameter[] sqlParams = null)
        {
            using (var cmd = conn.CreateCommand())
            {
                if (tran != null)
                {
                    cmd.Transaction = tran;
                }

                cmd.CommandTimeout = commandTimeoutSecs;
                cmd.CommandText    = commandText;

                try
                {
                    if (sqlParams != null)
                    {
                        cmd.Parameters.AddRange(sqlParams);
                    }

                    using (var r = cmd.ExecuteReader())
                    {
                        while (r.Read())
                        {
                            handler(r);
                        }
                    }
                }
                catch (Exception ex)
                {
                    _log.Error("Error getting results set", ex);
                    _log.Error(cmd.CommandText);
                    throw;
                }
            }
        }