Was übergibt Parameter an SQL und warum brauche ich das?

Anfänger hier:

In diesemAntworteei meiner Frage, wie Daten in SQL Server eingefügt werden sollen, erwähnte er die Übergabe von Parametern anstelle der Verkettung von Zeichenfolgen, wie ich sie derzeit hab

Ist das wirklich für die Sicherheit notwendig? Wenn ja, was genau übergibt Parameter? Wenn ich es google, bekomme ich viel über gespeicherte Prozeduren. Ist es das, was ich will, ich weiß nicht über gespeicherte Prozeduren .... noch.

Wenn Sie mich in die richtige Richtung weisen können, würde ich das begrüßen.

Vielen Dank

BEARBEITEN

Ok, hier ist was ich habe. Es scheint die Datenbank korrekt zu aktualisieren und irgendwann werde ich die fest codierten Ints in Eingaben von einem Etikett ändern. Bitte bestätigen Sie, ob meine Vorgehensweise für SQL Injection oder Hacks nicht anfällig ist.

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(); 


    }

}

Antworten auf die Frage(10)

Ihre Antwort auf die Frage