Что такое передача параметров в SQL и зачем мне это нужно?

Начинающий здесь:

В этомответ на мой вопрос о том, как вставить данные в SQL Server, он упомянул о передаче параметров вместо конкатенации строк, как в настоящее время.

Это действительно необходимо для безопасности? Если да, то что именно передает параметры? Когда я Google, я получаю много информации о хранимых процедурах. Это то, что я хочу, я не знаю о хранимых процедурах .... пока.

Если вы можете указать мне правильное направление, я был бы признателен.

Благодарю.

РЕДАКТИРОВАТЬ:

Хорошо, вот что я получил. Похоже, что база данных корректно обновляется, и со временем я заменю жестко запрограммированные целые на входы с метки. Пожалуйста, подтвердите, если как я это сделал, не уязвимы для каких-либо инъекций sql или взломов.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;

using System.Data;
using System.Data.Sql;
using System.Data.SqlClient;



public partial class Stats : System.Web.UI.Page
{

    public SqlDataReader DataReader;
    public SqlCommand Command;
    string queryString = ("INSERT INTO UserData (UserProfileID, ConfidenceLevel, LoveLevel, HappinessLevel) VALUES (@UID, @CL, @LL, @HL);");
    //string queryString = ("INSERT INTO UserData (UserProfileID, ConfidenceLevel, LoveLevel, HappinessLevel) VALUES ('a051fc1b-4f51-485b-a07d-0f378528974e', 2, 2, 2);"); 

    protected void Page_Load(object sender, EventArgs e)
    {
       LabelUserID.Text = Membership.GetUser().ProviderUserKey.ToString();

    }

    protected void Button1_Click(object sender, EventArgs e)
    {

        //connect to database
        MySqlConnection database = new MySqlConnection();
        database.CreateConn(); 

        //create command object
        Command = new SqlCommand(queryString, database.Connection);

        //add parameters. used to prevent sql injection
        Command.Parameters.Add("@UID", SqlDbType.UniqueIdentifier);
        Command.Parameters["@UID"].Value = Membership.GetUser().ProviderUserKey;

        Command.Parameters.Add("@CL", SqlDbType.Int);
        Command.Parameters["@CL"].Value = 9;

        Command.Parameters.Add("@LL", SqlDbType.Int);
        Command.Parameters["@LL"].Value = 9;

        Command.Parameters.Add("@HL", SqlDbType.Int);
        Command.Parameters["@HL"].Value = 9;

        Command.ExecuteNonQuery(); 


    }

}

Ответы на вопрос(5)

Ваш ответ на вопрос