Simple IF Statement C#.. NEED HELP!

Hello,

I'm trying to do an IF Statement in C# (.net). I want to call on the IF Statement, if SectorID is not 1 then response.redirect...

SectorID is in the database.. how do I do this?
DataModule dm = new DataModule();
 
                DataTable dt2 = dm.getData(String.Format("select ID, SectorID from tbl_UploadStories where ID={0} AND SectorID = 1", ar.SectionID.ToString()));
 
                if (dt2.DataSet != WHAT TO I PUT HERE??? )
                {
                    Response.Redirect("/");
                }

Open in new window

FeziAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Guy Hengel [angelIII / a3]Connect With a Mentor Billing EngineerCommented:
I presume:
if (dt2.Rows.Count == 0 )
                {
                    Response.Redirect("/");
                }

Open in new window

0
 
DhaestCommented:
if (dt2.Rows[0]["ID"] != 1 )
0
 
DhaestCommented:
Like angelll presumed: does your query always return 1 row ?
If so, you can use the check of angelll.
         if (dt2.Rows.Count == 0 )
                {
                    Response.Redirect("/");
                }

If you return more rows and you need to check the value of the "ID" of the first row, you can check it like I mentioned.
         if (dt2.Rows[0]["ID"] != "1" )
                {
                    Response.Redirect("/");
                }

Or can it return more rows and do you need to check if there is a row with the "ID" equal to 1 ?
0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
FeziAuthor Commented:
angelIII - Your code works, but not in the way I want it to work. Your code works if the ID does not exist then it will redirect.

Dhaest - your code does not seem to work, error is 'cannot be applied to operands of type 'object' and 'int''

What I want to do is, If the SectorID is not 1 then redirect


hope this helps
0
 
DhaestConnect With a Mentor Commented:
if ((int)dt2.Rows[0]["ID"] != 1 )
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
or this:
if (dt2.Rows[0]["ID"].ToString() != "1" )
                {
                    Response.Redirect("/");
                }

Open in new window

0
 
FeziAuthor Commented:
For some reason it is only allowing me to see the first record.

Scenario:
I have a list of articles on a page, which I click on a headline it displays another page with the full article, in the database I have many different articles with different SectorID's. I only want to show articles with SectorID = 1. All other articles with SectorID 2,4 and 5 will need to redirect to the home page.

Thats what I want to do.

The code above isn't quiet there yet.
0
 
DhaestCommented:
>> DataTable dt2 = dm.getData(String.Format("select ID, SectorID from tbl_UploadStories where ID={0} AND SectorID = 1", ar.SectionID.ToString()));

So you are searching in the database for all items in your database (tbl_UploadStories ) where sectorID = 1.... But why are you setting ID = ? with ar.SectionID ?
0
 
FeziAuthor Commented:
the ID is in the querystring, if someone tries to manually enter different articles in the querystring using the ID, with SectorID = 2 in the database, then it needs to redirect to the home page
0
 
DhaestConnect With a Mentor Commented:
So if you perform the query, you want to know if there exists a record for SectorID = 1 and ID = (article coming from querystring)
I don't see why you wouldn't use the suggestion from angellll

if dt2.Rows.Count == 0 ....
0
 
FeziAuthor Commented:

Angel's is useful, but it's not what I want. that code only works if the record does not exist in the database.

In my database, I have Incremented ID's and SectorID  = 1, 2, 4, 5


But I only want user's to view articles with SectorID = 1.  e.g.

ID = 4
SectorID = 1

ID = 3
SectorID = 2

If the user types ID 4 in the querystring the page should display. If the user types 3 in the querystring It should REDIRECT the page to the homepage, because the SectorID = 2.

0
 
mallcoreCommented:
DataModule dm = new DataModule();
 
                DataTable dt2 = dm.getData(String.Format("select ID, SectorID from tbl_UploadStories where ID={0} AND SectorID = 1", ar.SectionID.ToString()));
 
                if (dt2.DataSet != 1 )
                {
                    Response.Redirect("/");
                }
0
 
FeziAuthor Commented:
Yes, I tried this but got an error on ----        if (dt2.DataSet != 1 )

Operator '!=' cannot be applied to operands of type 'System.Data.DataSet' and 'int'
0
 
mallcoreCommented:
What about
if (dt2.DataSet != "1" )
0
 
FeziAuthor Commented:
same error...
0
 
FeziAuthor Commented:
Does anyone have a solution?
0
 
mallcoreCommented:
What if you take angellls suggestion and put it into a for loop?

so it would look like this

if (dt2.Rows[0]["ID"].ToString() != "1" )
                {
                    Response.Redirect("/");
                }
for(int i = 0 ; i <= dt2.Rows[i] ; i++
{
if (dt2.Rows[i]["ID"].ToString() != "1" )
                {
                    Response.Redirect("/");
                }
}

Open in new window

0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
I suggest to use the power of .net
DataView dv = dt2.DefaultView();
dv.RowFilter = "ID = 1";
if (dv.Rows.Count > 0 )
{
  Response.Redirect("/");
}

Open in new window

0
 
FeziAuthor Commented:
hi, i get two errors with that code.

Error      101      'System.Data.DataTable.DefaultView' is a 'property' but is used like a 'method'

Error      102      'System.Data.DataView' does not contain a definition for 'Rows'

All I want to do is NOT to display SectorID = 2, 4, 5 on the page
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
sorry, the first line should read:
DataView dv = dt2.DefaultView;
0
 
FeziAuthor Commented:
hi... I still have an error with the 3rd line 'Rows'

                DataView dv = dt2.DefaultView;
                dv.RowFilter = "ID = 1";
                if (dv.Rows.Count > 0)
                {
                    Response.Redirect("/");
                }

Error      102      'System.Data.DataView' does not contain a definition for 'Rows'
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
DataView dv = dt2.DefaultView;
                dv.RowFilter = "ID = 1";
                if (dv.Count > 0)
                {
                    Response.Redirect("/");
                }
0
 
FeziAuthor Commented:
the code works, but it's not exactly what I need.

I only need want to display articles from the database that have a SectorID 1 in the database. SectorID and ID are two different fields. SectorID is like a section stored in another database. and ID is the main ID of that article...
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
so, this should be it?
DataView dv = dt2.DefaultView;
                dv.RowFilter = "SectorID = 1";
                if (dv.Count == 0)
                {
                    Response.Redirect("/");
                }

Open in new window

0
 
FeziAuthor Commented:
It still displays  the articles with different SectionID ...
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.