Exemplo n.º 1
0
        private static async Task ProcessSqlAsync(SqlConnection connection, SqlTransaction transaction, string session, string category, string command, NameValueCollection parameters, DataSet response)
        {
            using (SqlCommand cmd = new SqlCommand(category + ".." + command, connection))
            {
                cmd.Transaction    = transaction;
                cmd.CommandType    = CommandType.StoredProcedure;
                cmd.CommandTimeout = 120;
                cmd.Parameters.Add("@SessionID", SqlDbType.VarChar).Value = session;

                foreach (var parameter in parameters)
                {
                    var name  = parameter.Name;
                    var value = parameter.Value;

                    name = Misc.SafeSqlName(name);

                    if (parameter.IsNull)
                    {
                        value = null;
                    }

                    cmd.Parameters.Add("@" + name, SqlDbType.NVarChar).Value = value;
                }
                //using (var reader = await cmd.ExecuteReaderAsync())
                //{
                //    SqlDataAdapter dataAdapter = new SqlDataAdapter();
                //    dataAdapter.Fill(reader);
                //    using (SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd))
                //    {
                //        var result = new DataSet();

                //        AppendDataSet(response, result);
                //    }
                //}

                //using (var dataAdapter = await cmd.ExecuteReaderAsync())
                //{
                //    var result = new DataSet();
                //    dataAdapter.Fill(result);
                //    AppendDataSet(response, result);
                //}

                //using (SqlDataAdapter dataAdapter = await cmd.ExecuteReaderAsync())
                //{
                //    var result = new DataSet();
                //    dataAdapter.Fill(result);
                //    AppendDataSet(response, result);
                //}

                using (SqlDataAdapter dataAdapter = new SqlDataAdapter(cmd))
                {
                    var result = new DataSet();
                    dataAdapter.Fill(result);
                    AppendDataSet(response, result);
                    //await Task.Run(() => dataAdapter.Fill(result));
                    //await Task.Run(() => AppendDataSet(response, result));

                    //dataAdapter.Fill(result);
                    //AppendDataSet(response, result);
                }
            }
        }