コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: vedph/census
 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);
     }
 }
コード例 #2
0
ファイル: CensusRepository.cs プロジェクト: vedph/census
        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));
        }