Well, yes - it will.
label.Text = Convert.ToString(Convert.ToInt32(dt3.Rows[0][5])+Convert.ToInt32(dt3.Rows[0][8])+Convert.ToInt32(dt3.Rows[0][11]));
You always access the same row - row zero...
But, please, don't do things like that!
Firstly, Do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead.
Secondly, don't use SELECT * FROM ... as a query, and then:
1) Ignore most of the values. It is very inefficient and wastes your SQL server bandwidth.
2) Use numeric indexes to access columns. If your DB changes, your code displays the wrong data, or falls over - and it may be that nobody notices for ages after the damage was done...
Instead, name the columns you want to return, and use string based indexes:
SELECT ID, Name FROM ....
string s = (string) dt.Rows[index]["Name"];
Thirdly, if you are going to use numeric indexes, don't use "magic numbers" - it's a lot, lot harder to update them later if you need to change the datasource. Use
const int
values instead with sensible names.
There are other things you should look at, but those are the biggies!