private void OnGenerateSearchClick(object sender, RoutedEventArgs e) { try { var t = _sqlBuilder.BuildActSearch(GetActFilter()); _txtSql.Text = t.Item1 + "\r\n\r\n" + t.Item2; _tabs.SelectedItem = _tabSql; } catch (Exception ex) { Debug.WriteLine(ex.ToString()); MessageBox.Show(ex.Message, Title, MessageBoxButton.OK); } }
public DataPage <ActInfo> GetActs(ActFilter filter) { if (filter == null) { throw new ArgumentNullException(nameof(filter)); } EnsureConnected(); var t = _queryBuilder.BuildActSearch(filter); List <ActInfo> acts = new List <ActInfo>(); int total; using (IDbCommand cmdPage = _connection.CreateCommand()) using (IDbCommand cmdTot = _connection.CreateCommand()) { // total cmdTot.CommandText = t.Item2; object result = cmdTot.ExecuteScalar(); total = result != DBNull.Value && result != null? Convert.ToInt32(result) : 0; // page if (total > 0) { cmdPage.CommandText = t.Item1; using var reader = cmdPage.ExecuteReader(); while (reader.Read()) { acts.Add(new ActInfo { Id = GetReaderInt(reader, "id"), TypeId = GetReaderInt(reader, "typeId"), TypeName = GetReaderString(reader, "typeName"), SubtypeId = GetReaderInt(reader, "subtypeId"), SubtypeName = GetReaderString(reader, "subtypeName"), FamilyId = GetReaderInt(reader, "familyId"), FamilyName = GetReaderString(reader, "familyName"), CompanyId = GetReaderInt(reader, "companyId"), CompanyName = GetReaderString(reader, "companyName"), PlaceId = GetReaderInt(reader, "placeId"), PlaceName = GetReaderString(reader, "placeName"), Label = GetReaderString(reader, "label"), ArchiveId = GetReaderInt(reader, "archiveId"), ArchiveName = GetReaderString(reader, "archiveName"), BookId = GetReaderInt(reader, "bookId"), BookLocation = GetReaderString(reader, "location"), BookDescription = GetReaderString(reader, "description"), BookStartYear = GetReaderShort(reader, "startYear"), BookEndYear = GetReaderShort(reader, "endYear"), BookFile = GetReaderString(reader, "file") }); } } } _connection.Close(); return(new DataPage <ActInfo>( filter.PageNumber, filter.PageSize, total, acts)); }