ADO.Net 経由で SQL Server 2005 バックエンドと通信する VB.Net フロント エンドを備えた .Net Web システムがあります。基本的に、私がやりたいことはこれです:
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()
並べ替え順序がクエリ文字列などを介して渡される場所。このコードは、「'@SortOrder' 付近の構文が正しくありません。ステートメントを準備できませんでした。」をスローします。
これは可能ですか、それとも私が見ていない本当にばかげた構文エラーがありますか?
(そして、はい、クライアントは .net 2.0 しか実行していないため、残念ながら LINQ ベースのソリューションは機能しません。
皆さんありがとう!
更新/応答:
まあ、それは私が思ったことです。皆さん、健全性チェックをありがとう。(一部のコンテキストでは、コマンド文字列は現在動的に構築されていますが、システムをより準備されたステートメントの方向に動かしています。これは、私が可能だとは知らなかったエッジケースの 1 つでした。
再度、感謝します!