Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Read Records then Count

Read Records then Count

Scheduled Pinned Locked Moved C#
csharpdatabasetutorialquestion
19 Posts 7 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • OriginalGriffO OriginalGriff

    Yes...it would... :-O Sorry about that, it's been one of those weeks...

    Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...

    M Offline
    M Offline
    macca24
    wrote on last edited by
    #10

    I should have said I am trying to do this using LINQ: I have a 20 records in a database table. Each record has and ID. I want to read a field in each record fieldA. I only want to read the records that have an ID '1'. For each record that has an ID '1' and fieldA Is Not Null I want to return a count of those records. So if 10 records have data in fieldA and have ID '1' then my count for fieldA will be 10. Anyone know how to do this in Linq?

    A 1 Reply Last reply
    0
    • M macca24

      I should have said I am trying to do this using LINQ: I have a 20 records in a database table. Each record has and ID. I want to read a field in each record fieldA. I only want to read the records that have an ID '1'. For each record that has an ID '1' and fieldA Is Not Null I want to return a count of those records. So if 10 records have data in fieldA and have ID '1' then my count for fieldA will be 10. Anyone know how to do this in Linq?

      A Offline
      A Offline
      Agent__007
      wrote on last edited by
      #11

      How about something like:

      int count = yourDbContext.yourEntityCollection.Where(entity => entity.ID == 1 && entity.FieldA != null).Count();

      You have just been Sharapova'd.

      Richard DeemingR 1 Reply Last reply
      0
      • A Agent__007

        How about something like:

        int count = yourDbContext.yourEntityCollection.Where(entity => entity.ID == 1 && entity.FieldA != null).Count();

        You have just been Sharapova'd.

        Richard DeemingR Offline
        Richard DeemingR Offline
        Richard Deeming
        wrote on last edited by
        #12

        Or, more simply:

        int count = yourDbContext.yourEntityCollection.Count(entity => entity.ID == 1 && entity.FieldA != null);

        :)


        "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

        "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

        A M 2 Replies Last reply
        0
        • Richard DeemingR Richard Deeming

          Or, more simply:

          int count = yourDbContext.yourEntityCollection.Count(entity => entity.ID == 1 && entity.FieldA != null);

          :)


          "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

          A Offline
          A Offline
          Agent__007
          wrote on last edited by
          #13

          Not sure about Linq to SQL, but (for Linq to objects and XML) I have always found Where(predicate).Count() to be performing better than .Count(predicate). --EDIT Here's a StackOverflow question[^] that might interest you. :)

          You have just been Sharapova'd.

          Richard DeemingR 1 Reply Last reply
          0
          • A Agent__007

            Not sure about Linq to SQL, but (for Linq to objects and XML) I have always found Where(predicate).Count() to be performing better than .Count(predicate). --EDIT Here's a StackOverflow question[^] that might interest you. :)

            You have just been Sharapova'd.

            Richard DeemingR Offline
            Richard DeemingR Offline
            Richard Deeming
            wrote on last edited by
            #14

            The optimizations only apply to in-memory LINQ queries (LINQ to Objects and LINQ to XML). With LINQ to SQL and Entity Framework, both versions should produce an identical SQL query.


            "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

            "These people looked deep within my soul and assigned me a number based on the order in which I joined" - Homer

            A 1 Reply Last reply
            0
            • Richard DeemingR Richard Deeming

              Or, more simply:

              int count = yourDbContext.yourEntityCollection.Count(entity => entity.ID == 1 && entity.FieldA != null);

              :)


              "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

              M Offline
              M Offline
              macca24
              wrote on last edited by
              #15

              This is the code that I am looking to get a Count of complexQuery.

              string refName = entity.GetAttributeValue<string>("contractorname");

              var complexQuery = (from c in orgContext.CreateQuery<contractorframe>()
              join e in orgContext.CreateQuery<dcc_eval>()
              on c.ContractorName equals e.RegardingObjectId.ToString()
              where e.RegardingObjectId.ToString() == refName
              and e.QW Is Not Null)

              A 1 Reply Last reply
              0
              • Richard DeemingR Richard Deeming

                The optimizations only apply to in-memory LINQ queries (LINQ to Objects and LINQ to XML). With LINQ to SQL and Entity Framework, both versions should produce an identical SQL query.


                "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                A Offline
                A Offline
                Agent__007
                wrote on last edited by
                #16

                :thumbsup: Indeed, they should. But I have always used the Where(predicate).Count() version, so that came implicitly when I posted the answer. :)

                You have just been Sharapova'd.

                1 Reply Last reply
                0
                • M macca24

                  This is the code that I am looking to get a Count of complexQuery.

                  string refName = entity.GetAttributeValue<string>("contractorname");

                  var complexQuery = (from c in orgContext.CreateQuery<contractorframe>()
                  join e in orgContext.CreateQuery<dcc_eval>()
                  on c.ContractorName equals e.RegardingObjectId.ToString()
                  where e.RegardingObjectId.ToString() == refName
                  and e.QW Is Not Null)

                  A Offline
                  A Offline
                  Agent__007
                  wrote on last edited by
                  #17

                  macca24 wrote:

                  I am looking to get a Count of complexQuery

                  Not sure what you mean by that, but if your complexQuery is already working, then you can simply use the Count() method:

                  int complexQueryCount = (from c in orgContext.CreateQuery()
                  join e in orgContext.CreateQuery()
                  on c.ContractorName equals e.RegardingObjectId.ToString()
                  where e.RegardingObjectId.ToString() == refName
                  and e.QW Is Not Null).Count(); // <-- here

                  You have just been Sharapova'd.

                  M 1 Reply Last reply
                  0
                  • A Agent__007

                    macca24 wrote:

                    I am looking to get a Count of complexQuery

                    Not sure what you mean by that, but if your complexQuery is already working, then you can simply use the Count() method:

                    int complexQueryCount = (from c in orgContext.CreateQuery()
                    join e in orgContext.CreateQuery()
                    on c.ContractorName equals e.RegardingObjectId.ToString()
                    where e.RegardingObjectId.ToString() == refName
                    and e.QW Is Not Null).Count(); // <-- here

                    You have just been Sharapova'd.

                    M Offline
                    M Offline
                    macca24
                    wrote on last edited by
                    #18

                    int complexQuery = (from e in mycontext.CreateQuery()

                                                            where e.new\_QW1 != null
                                                            select e.new\_QW1).Count();
                    
                                        
                    
                                        
                                       if (complexQuery < 1)
                                        {
                                            var newQuery = "HasData";
                                            entity.Attributes.Add("new\_testcomplexquery", newQuery);
                                        }
                                        else
                                        {
                                            var newQueryToo = "Blank";
                                            entity.Attributes.Add("new\_testcomplexquery", newQueryToo);
                                            
                    
                                        }
                    

                    I want to use the results of complexQuery in an If statement but the value of complexQuery doesnt appear to be getting picked up. Anyone know why?

                    A 1 Reply Last reply
                    0
                    • M macca24

                      int complexQuery = (from e in mycontext.CreateQuery()

                                                              where e.new\_QW1 != null
                                                              select e.new\_QW1).Count();
                      
                                          
                      
                                          
                                         if (complexQuery < 1)
                                          {
                                              var newQuery = "HasData";
                                              entity.Attributes.Add("new\_testcomplexquery", newQuery);
                                          }
                                          else
                                          {
                                              var newQueryToo = "Blank";
                                              entity.Attributes.Add("new\_testcomplexquery", newQueryToo);
                                              
                      
                                          }
                      

                      I want to use the results of complexQuery in an If statement but the value of complexQuery doesnt appear to be getting picked up. Anyone know why?

                      A Offline
                      A Offline
                      Agent__007
                      wrote on last edited by
                      #19

                      I am not sure what you are trying to do, but shouldn't your if condition be reversed? i.e. it "HasData" if complexQuery > 0 and it's "Blank" if complextQuery == 0. Try this:

                      if (complexQuery != 0) // <-- reverse the condition here
                      {
                      var newQuery = "HasData";
                      entity.Attributes.Add("new_testcomplexquery", newQuery);
                      }
                      else
                      {
                      var newQueryToo = "Blank";
                      entity.Attributes.Add("new_testcomplexquery", newQueryToo);
                      }

                      You have just been Sharapova'd.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups