Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Differenza tra l'aggiunta di parametri alla stored procedure in SQL Server?

Ecco alcune spiegazioni:

differenza tra comando Aggiungi e AddWithValue

Dim cmd as new SqlCommand("SELECT * FROM MyTable WHERE MyDate>@TheDate",conn)
cmd.Parameters.Add("@TheDate",SqlDbType.DateTime).Value="2/1/2007"

contro

cmd.Parameters.AddWithValue("@TheDate","2/1/2007")

"Aggiungi forza la conversione da stringa a data mentre entra nel parametro. AddWithValue avrebbe semplicemente passato la stringa a SQL Server.

Modifica :

esempio per ottenere un parametro di output:

C#

cmd.Parameters.Add(new SqlParameter("@TheNewId", SqlDbType.Int, int.MaxValue));
cmd.Parameters("@TheNewId").Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
int theNewID = (int)cmd.Parameters("@TheNewId").Value;

Rete virtuale

cmd.Parameters.Add(New SqlParameter("@TheNewId", SqlDbType.Int, Int32.MaxValue))
cmd.Parameters("@TheNewId").Direction = ParameterDirection.Output
cmd.ExecuteNonQuery()
Dim theNewID As Int32 = DirectCast(cmd.Parameters("@TheNewId").Value, Int32)