コード例 #1
0
ファイル: MySqlDalClient.cs プロジェクト: doeasier/XFramework
        /// <summary>
        /// 执行数据库的更新操作
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="parameters"></param>
        /// <param name="dalHints"></param>
        /// <returns></returns>
        private async Task <ExecutionResult> ExecuteNonQuery(string sql, List <DatabaseParameter> parameters, DalHints dalHints)
        {
            using (var conn = new MySqlConnection(GetConnectionString()))
            {
                // 打开数据库链接
                await conn.OpenAsync();

                using (var command = BuildCommand(sql, parameters, conn))
                {
                    var result = new ExecutionResult()
                    {
                        // 执行Sql语句
                        ReturnCode = await command.ExecuteNonQueryAsync()
                    };

                    // 是否需要设置传回主键
                    if (DalHints.IsSet(dalHints, DalHint.SetIdentity))
                    {
                        using (var identityCommand = new MySqlCommand("SELECT @@Identity;", conn))
                        {
                            result.Identity = (ulong)await identityCommand.ExecuteScalarAsync();
                        }
                    }

                    return(result);
                }
            }
        }