title: Can you parameterize sort order in a sql server prepared statement?
body: <p>I've got a .Net web system with a VB.Net front end talking to a SQL Server 2005 back end over ADO.Net.  Essentially, what I want to do is this:</p>
  
  <pre><code>Dim command As SqlCommand = New SqlCommand("", connection)
  command.CommandText = "SELECT * FROM someTable ORDER BY orderValue @SortOrder"
  Dim sortParam As SqlParameter = New SqlParameter("@SortOrder", SqlDbType.varChar, 3)
  sortParam.Value = "ASC"
  command.Parameters.Add(sortParam)
  command.Prepare()
  reader = command.ExecuteReader()
  </code></pre>
  
  <p>Where the sort order would be passed in via a query string or some such.  This code throws  "Incorrect syntax near '@SortOrder'. Statement(s) could not be prepared."</p>
  
  <p>Is this even possible, or do I have some really dumb syntax error I'm not seeing?</p>
  
  <p>(And, yes, the client is only running .net 2.0, so LINQ-based solutions won't work, sadly.</p>
  
  <p>Thanks, all!</p>
  
  <p>Update / Response:</p>
  
  <p>Well, that's what I thought.  Thanks for the sanity check, everybody.  (For some context, the command string is currently being built dynamically, but we're moving the system in a more prepared statement direction, and this was one of the edge cases I didn't know was possible.</p>
  
  <p>Thanks again!</p>