/// <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()); } }
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; } } }
public ResultSet(MyCatDataReader dataReader) { DataReader = dataReader; }