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

Forskellen mellem at tilføje parametre til lagret procedure i SQL Server?

Her er nogle forklaringer:

forskel mellem kommandoen Add og AddWithValue

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

vs.

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

"Add fremtvinger konverteringen fra streng til dato, efterhånden som den går ind i parameteren. AddWithValue ville simpelthen have sendt strengen videre til SQL Serveren.

Rediger :

eksempel for at få en output-parameter:

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;

VB.Net

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)


  1. Syntaks kontrollere alle lagrede procedurer?

  2. MySQL loop gennem tabeller

  3. Sådan bruger du præfiks-jokertegn som '*abc' med match-mod

  4. BLOB i MySQL-visning i stedet for de korrekte data