protected String buildSort(filtering.Sort sort) { String str = ""; if (sort != null) { for (int i = 0; i < sort.ColumnNames.Count; i++) { str += sort.ColumnNames[i] + ","; } if (str.Length > 0) { str = str.Substring(0, str.Length - 1); } if (sort.Ascending) { str += " ASC "; } else { str += " DESC "; } } return(str); }
public override System.Data.DataTable getFiltered(String tableName, filtering.BaseFilter filter = null, filtering.Sort sort = null, filtering.Paging page = null) { int status = -1; System.Data.DataTable results = new System.Data.DataTable(); MySql.Data.MySqlClient.MySqlConnection dbConn = this.ConnectAsync() as MySql.Data.MySqlClient.MySqlConnection; if (dbConn != null && dbConn.State == System.Data.ConnectionState.Open) { String sql = ""; try { sql = "Select * from `" + tableName + "` "; // build filter if (filter != null) { sql += " Where " + buildFilter(filter); } // build sort if (sort != null) { sql += " ORDER BY " + buildSort(sort); } // build paging if (page != null) { sql += " LIMIT " + buildPaging(page); } var cmd = dbConn.CreateCommand(); cmd.CommandText = sql; results = parseResults(cmd.ExecuteReader()); status = 0; } catch (Exception ex) { if (m_DebugInfo) { Console.WriteLine("Error [{0}]: {1}", tableName, ex.Message); } status = -2; } finally { if (dbConn != null) { try { dbConn.Close(); } finally { dbConn.Dispose(); } } } decrementOpenConnections(); } return(results); }