Ejemplo n.º 1
0
        /// <summary>
        /// Fill
        /// </summary>
        /// <param name="ds"></param>
        public void Fill(DataSet ds)
        {
            if (ds == null)
            {
                ds = new DataSet();
            }
            using (MyCatDataReader dr = command.ExecuteReader())
            {
                do
                {
                    var dt      = new DataTable();
                    var columns = dt.Columns;
                    var rows    = dt.Rows;
                    for (int i = 0; i < dr.FieldCount; i++)
                    {
                        string name = dr.GetName(i).Trim();
                        if (!columns.Contains(name))
                        {
                            columns.Add(new DataColumn(name, dr.GetFieldType(i)));
                        }
                    }

                    while (dr.Read())
                    {
                        DataRow daRow = dt.NewRow();
                        for (int i = 0; i < columns.Count; i++)
                        {
                            daRow[columns[i].ColumnName] = dr.GetValue(i);
                        }
                        dt.Rows.Add(daRow);
                    }
                    ds.Tables.Add(dt);
                } while (dr.NextResult());
            }
        }
Ejemplo n.º 2
0
        public virtual async Task <DbDataReader> ExecuteReaderAsync(string commandText, MyCatParameterCollection parameterCollection,
                                                                    CommandBehavior behavior, IOBehavior ioBehavior, CancellationToken cancellationToken)
        {
            m_command.VerifyValid();
            var connection = m_command.Connection;

            connection.HasActiveReader = true;

            MyCatDataReader reader = null;

            try
            {
                m_command.LastInsertedId = -1;
                var statementPreparerOptions = StatementPreparerOptions.None;
                if (connection.AllowUserVariables || m_command.CommandType == CommandType.StoredProcedure)
                {
                    statementPreparerOptions |= StatementPreparerOptions.AllowUserVariables;
                }
                if (connection.OldGuids)
                {
                    statementPreparerOptions |= StatementPreparerOptions.OldGuids;
                }
                var preparer = new MyCatStatementPreparer(commandText, parameterCollection, statementPreparerOptions);
                var payload  = new PayloadData(preparer.ParseAndBindParameters());
                await connection.Session.SendAsync(payload, ioBehavior, cancellationToken).ConfigureAwait(false);

                reader = await MyCatDataReader.CreateAsync(m_command, behavior, ioBehavior, cancellationToken).ConfigureAwait(false);

                return(reader);
            }
            finally
            {
                if (reader == null)
                {
                    // received an error from MySQL and never created an active reader
                    connection.HasActiveReader = false;
                }
            }
        }
Ejemplo n.º 3
0
 public ResultSet(MyCatDataReader dataReader)
 {
     DataReader = dataReader;
 }