This lesson is intended to teach a student to use nested loops, and to understand that each instance of the inner loop can access the state of the outer loop. Unfortunately most teachers don't understand what the heck they're teaching and just give you the problem without explaining why it's a useful thing to practice.
Because you always want the exact same number of stars as the row you are on, you should just compare directly between the column index and the current row.
public void DrawSquare(int sideLength)
{
for(int row = 1; row <= sideLength; row++)
{
for (int col = 1; col <= sideLength; col++)
{
if (col <= row)
Console.Write('*');
else
Console.Write('#');
}
Console.WriteLine();
}
}
There are many shortcuts and c# tricks that could get you there faster, but this is the essence of what you should be trying to do.