public List <ListDataRow> rows() { List <ListDataRow> ret = new List <ListDataRow>(); DataSet ds = getDataSet(); DataTable tb = ds.Tables[0]; if (tb == null) { return(ret); } int start = 0; int count = tb.Rows.Count; if (!_pagination.isStoreProcessPagination) { if (_pagination.page != 0 && _pagination.pageSize != 0) { start = (_pagination.page - 1) * _pagination.pageSize; count = (_pagination.page) * _pagination.pageSize; } } if (start < 0) { start = 0; } for (int r = start; r < count; r++) { if (r >= tb.Rows.Count) { break; } DataRow dRow = tb.Rows[r]; ListDataRow row = DataSourceComm.readRow(tb, _schema, dRow); ret.Add(row); } if (_pagination.isStoreProcessPagination) { this._ds = null; } return(ret); }
private List <ListDataRow> getSubTableRows(Dictionary <string, string> pks, SubTableSchema subSchema) { DatabaseAdmin dba = DatabaseAdmin.getInstance(); DataSource subDs = new DataSource(subSchema.Name); DataSourceSchema dss = subDs.getSchema(); if (dss.SelectCommand.CommandType != CommandType.TableDirect) { throw new XException(string.Format(Lang.SubTableSelCommandTypeOnlyIsTable, subSchema.Name)); } StringBuilder sb = new StringBuilder("select * from "); sb.Append(dss.SelectCommand.CommandText); sb.Append(" "); sb.Append(" where "); Hashtable ps = new Hashtable(); for (int i = 0; i < subSchema.Fks.Count; i++) { string fk = subSchema.Fks[i]; string pk = _schema.PrimaryKeys[i]; sb.Append(fk); sb.Append("=@"); sb.Append(pk); sb.Append(" and "); ps.Add("@" + pk, pks[pk].ToString()); } sb.Remove(sb.Length - 5, 5); DbCommand cmd = dba.getSqlStringCommand(sb.ToString()); foreach (string key in ps.Keys) { dba.addInParameter(cmd, key, DbType.String, ps[key]); } DataTable tb = dba.executeTable(cmd); List <ListDataRow> rows = new List <ListDataRow>(); foreach (DataRow row in tb.Rows) { rows.Add(DataSourceComm.readRow(tb, dss, row)); } return(rows); }
public ListDataRow row(Dictionary <string, string> pk) { if (pk == null || pk.Count < 1) { throw new Exception(Lang.UpdateNoKey); } StringBuilder sb = new StringBuilder(); foreach (string field in pk.Keys) { sb.Append(" and "); sb.Append(field); sb.Append("='"); sb.Append(pk[field]); sb.Append("' "); } sb.Remove(0, 5); PaginationInfo pagin = new PaginationInfo(); DsAdapterCustomer dsa = new DsAdapterCustomer(_schema); DataSet ds = dsa.getDataSet(getQueryParams(_schema.SelectCommand), sb.ToString(), null, null, pagin); if (ds.Tables.Count < 1) { return(null); } DataTable tb = ds.Tables[0]; DataRow[] rows = tb.Select(sb.ToString()); if (tb.Rows.Count < 1) { return(null); } ListDataRow ret = DataSourceComm.readRow(tb, _schema, rows[0]); return(ret); }