Beispiel #1
0
        public static async Task <IDictionary <string, object> > ReturnExecute(string sql, string[] outParamsName, DynamicParameters param = null, IDbTransaction dbTransaction = null, IDbConnection connection = null, SQLType type = SQLType.MySql)
        {
            if (connection != null)
            {
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }
                param = param ?? new DynamicParameters();
                await connection.ExecuteAsync(sql, param, commandType : CommandType.Text, transaction : dbTransaction);

                Dictionary <string, object> result = new Dictionary <string, object>();
                foreach (var item in outParamsName)
                {
                    result.Add(item, param.Get <object>(item));
                }

                return(result);
            }
            else
            {
                switch (type)
                {
                case SQLType.SQLServer:
                    using (IDbConnection conn = new SqlConnection(ConnectionString))
                    {
                        conn.Open();
                        param = param ?? new DynamicParameters();
                        await conn.ExecuteAsync(sql, param, commandType : CommandType.Text);

                        Dictionary <string, object> result = new Dictionary <string, object>();
                        foreach (var item in outParamsName)
                        {
                            result.Add(item, param.Get <object>(item));
                        }

                        return(result);
                    }

                case SQLType.MySql:
                    using (IDbConnection conn = new MySqlData.MySql.Data.MySqlClient.MySqlConnection(ConnectionString))
                    {
                        conn.Open();
                        param = param ?? new DynamicParameters();
                        await conn.ExecuteAsync(sql, param, commandType : CommandType.Text);

                        Dictionary <string, object> result = new Dictionary <string, object>();
                        foreach (var item in outParamsName)
                        {
                            result.Add(item, param.Get <object>(item));
                        }

                        return(result);
                    }

                default:
                    throw new Exception("Wrong type");
                }
            }
        }
Beispiel #2
0
        public static async Task <int> Execute(string sql, DynamicParameters param = null, IDbTransaction dbTransaction = null, IDbConnection connection = null, SQLType type = SQLType.MySql)
        {
            if (connection != null)
            {
                if (connection.State != ConnectionState.Open)
                {
                    connection.Open();
                }
                param = param ?? new DynamicParameters();
                return(await connection.ExecuteAsync(sql, param, commandType : CommandType.Text, transaction : dbTransaction));
            }
            else
            {
                switch (type)
                {
                case SQLType.SQLServer:
                    using (IDbConnection conn = new SqlConnection(ConnectionString))
                    {
                        conn.Open();
                        param = param ?? new DynamicParameters();
                        return(await conn.ExecuteAsync(sql, param, commandType : CommandType.Text));
                    }

                case SQLType.MySql:
                    using (IDbConnection conn = new MySqlData.MySql.Data.MySqlClient.MySqlConnection(ConnectionString))
                    {
                        conn.Open();
                        param = param ?? new DynamicParameters();
                        return(await conn.ExecuteAsync(sql, param, commandType : CommandType.Text));
                    }

                default:
                    throw new Exception("Wrong type");
                }
            }
        }