Question: I have a C# Application I am creating that stores all data in SQL Server. 

Sometimes it's easier for me to make data changes programmatically and sometimes it's easier to have stored procedures and functions in the SQL Server database and call them.

I am rather new to programming and I don't know what the subtle advantages and/or disadvantages of each method are.

I figure I should probably be doing things one way or the other instead of using several methods. 

My code is starting to look like a random collection of thoughts all just shoved into one spot. No offense to Joel Spolsky. I love his books.

This is a solo project, so I can refactor any amount of code I want to make it better. All options are on the table.

Thanks,

J3r3myK

Answer: 
Allow me to rephrase that: should you be pulling down the data, modifying it in code, and then **having an SP update the DB with the new values**, or should you just call the SP as a "function".  

My point of emphasis is, even if you do the data manipulations in code, you should still only be accessing SPs on the db. 

Whether you do that, or have more complex SPs do the data manipulation, would depend on several factors:

* your level of comfort with complex SQL (as opposed to C#)
* how much data you need to pull down and modify - there may be performance aspects (it costs to pull all that data to the code)
* connected to the previous one, your architecture may come into play - e.g. are you accessing a local db server, or remote
* What kind of manipulations you need to do, it may be so complex you dont want to muddy your sql
* What kind of business logic you need to enforce, what is the data dependent on, etc.

It really comes down to a judgment call, there is no **right** way (though there are many *wrong* ways...). Though it is important to remain consistent, it is perfectly acceptable to have different types of db access in your system, as long as the context/need justifies it.  

I would say choose whichever you're most comfortable with, and stick to that - **until you have a reason to do it differently**. No reason to be dogmatic about it...
I would recommend following one convention or the other (either have your SQL code as strings in your classes or use stored procedures). There are countless debates about this, but there really isn't any important reasons to choose one or the other.