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. if/then/else variable frustration

if/then/else variable frustration

Scheduled Pinned Locked Moved C#
databasecsharptestingbeta-testinghelp
5 Posts 2 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.
  • S Offline
    S Offline
    Steve Embry
    wrote on last edited by
    #1

    Hello- I'm fairly new to C# (classic ASP guy), and I'm having a heckuva time with this. I am hoping someone can point out my flawed logic. I first need to ascertain if the current article group is one of several that need to be treated differently. If it is, it defines the var "strbody" using a complete value as retrieved from the database. If it is not one of those special article groups, then I have to do some string manipulation to format the retrieved value before defining and displaying it. My string manipulation code is flawless, but neither of the strbody vars I define in my if/then/else block is recognized when I call it below the code block???

    @{
    string group = Model.ArticleGroupName;

    if (group.Contains("Spacial Orientation")||group.Contains("Topography")||group.Contains("Osteology")||group.Contains("Angiology")||group.Contains("Neurology")||group.Contains("Myology")||group.Contains("Radiology")||group.Contains("Misc. Drawings")||group.Contains("Clinical Testing"))
    {
    var strbody = item.ShortBody;
    }
    else
    {

    string s = item.ShortBody;
    string sLess = s.Remove(0, 12);
    int index = sLess.IndexOf("Summary");
    var strbody = (sLess.Substring(index + 8));
    }
    

    }
    @strbody

    That code results in the following error: \Plugins\FoxNetSoft.Articles\Views\ArticleRead\List.cshtml(76): error CS0103: The name 'strbody' does not exist in the current context I am new to this, so please don't hesitate to chastise me for doing dumb stuff...I need to learn! Thanks, Steve

    S 1 Reply Last reply
    0
    • S Steve Embry

      Hello- I'm fairly new to C# (classic ASP guy), and I'm having a heckuva time with this. I am hoping someone can point out my flawed logic. I first need to ascertain if the current article group is one of several that need to be treated differently. If it is, it defines the var "strbody" using a complete value as retrieved from the database. If it is not one of those special article groups, then I have to do some string manipulation to format the retrieved value before defining and displaying it. My string manipulation code is flawless, but neither of the strbody vars I define in my if/then/else block is recognized when I call it below the code block???

      @{
      string group = Model.ArticleGroupName;

      if (group.Contains("Spacial Orientation")||group.Contains("Topography")||group.Contains("Osteology")||group.Contains("Angiology")||group.Contains("Neurology")||group.Contains("Myology")||group.Contains("Radiology")||group.Contains("Misc. Drawings")||group.Contains("Clinical Testing"))
      {
      var strbody = item.ShortBody;
      }
      else
      {

      string s = item.ShortBody;
      string sLess = s.Remove(0, 12);
      int index = sLess.IndexOf("Summary");
      var strbody = (sLess.Substring(index + 8));
      }
      

      }
      @strbody

      That code results in the following error: \Plugins\FoxNetSoft.Articles\Views\ArticleRead\List.cshtml(76): error CS0103: The name 'strbody' does not exist in the current context I am new to this, so please don't hesitate to chastise me for doing dumb stuff...I need to learn! Thanks, Steve

      S Offline
      S Offline
      s_magus
      wrote on last edited by
      #2

      "strbody" needs to be declared outside of the if statement, so that you can access it outside the scope of the if statement.

      @{
      string group = Model.ArticleGroupName;
      string strbody = string.Empty;

      if (group.Contains("Spacial Orientation") || group.Contains("Topography") || group.Contains("Osteology") || group.Contains("Angiology") || group.Contains("Neurology") || group.Contains("Myology") || group.Contains("Radiology") || group.Contains("Misc. Drawings") || group.Contains("Clinical Testing"))
      {
      strbody = item.ShortBody;
      }
      else
      {

      string s = item.ShortBody;
      string sLess = s.Remove(0, 12);
      int index = sLess.IndexOf("Summary");
      strbody = (sLess.Substring(index + 8));
      }
      

      }
      @strbody

      S 1 Reply Last reply
      0
      • S s_magus

        "strbody" needs to be declared outside of the if statement, so that you can access it outside the scope of the if statement.

        @{
        string group = Model.ArticleGroupName;
        string strbody = string.Empty;

        if (group.Contains("Spacial Orientation") || group.Contains("Topography") || group.Contains("Osteology") || group.Contains("Angiology") || group.Contains("Neurology") || group.Contains("Myology") || group.Contains("Radiology") || group.Contains("Misc. Drawings") || group.Contains("Clinical Testing"))
        {
        strbody = item.ShortBody;
        }
        else
        {

        string s = item.ShortBody;
        string sLess = s.Remove(0, 12);
        int index = sLess.IndexOf("Summary");
        strbody = (sLess.Substring(index + 8));
        }
        

        }
        @strbody

        S Offline
        S Offline
        Steve Embry
        wrote on last edited by
        #3

        Thanks for the response! I tried declaring the strbody as you suggested previously, but when I did, I got this error: A local variable named 'strbody' cannot be declared in this scope because it would give a different meaning to 'strbody', which is already used in a 'parent or current' scope to denote something else Learning C# is really frustrating!:confused: I could have done this exact thing with VBScript in about 2 minutes..and 8 less lines of code...

        S 1 Reply Last reply
        0
        • S Steve Embry

          Thanks for the response! I tried declaring the strbody as you suggested previously, but when I did, I got this error: A local variable named 'strbody' cannot be declared in this scope because it would give a different meaning to 'strbody', which is already used in a 'parent or current' scope to denote something else Learning C# is really frustrating!:confused: I could have done this exact thing with VBScript in about 2 minutes..and 8 less lines of code...

          S Offline
          S Offline
          s_magus
          wrote on last edited by
          #4

          Inside your if statement where it says "var strbody = ..." should now only be "strbody = ..." since you already declared the variable outside of the if statement. If you look at the modified code I provided in my previous post you will see that I am just assigning a value to the strbody variable inside of the if/else statement.

          S 1 Reply Last reply
          0
          • S s_magus

            Inside your if statement where it says "var strbody = ..." should now only be "strbody = ..." since you already declared the variable outside of the if statement. If you look at the modified code I provided in my previous post you will see that I am just assigning a value to the strbody variable inside of the if/else statement.

            S Offline
            S Offline
            Steve Embry
            wrote on last edited by
            #5

            I spotted that moments after submitting my reply... It's working perfectly now...thanks man!

            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