0

私の.aspxファイルには次のものがあります

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:KrySQL %>" OnSelecting="DataSourceSelecting"
       SelectCommand="Select ID, RoomNum from [dbo].[MBiology] WHERE LocId IN @LocId" >
    <SelectParameters>
       <asp:Parameter Name="LocId" />
    </SelectParameters>        
</asp:SqlDataSource>

私の目標は、カンマ区切りのリストまたは 1 つの値のみを渡すことです。@LocId

私のコードビハインドには、次のものがあります。

SqlDataSource1.SelectParameters["LocID"].DefaultValue = "(" + valint.ToString() + ")";

私は括弧とすべてを持っているので、これはうまくいくはずだと思いました。

次のエラー メッセージが表示されます。

「@LocId」付近の構文が正しくありません

4

1 に答える 1

1

残念ながら、次のようにすることはできません。.NET では、単一の SQL パラメーターでリスト全体を渡すことはできません。

必要なものを実装するには、次の 2 つの方法があります。

  • リストのメンバーの個々のパラメーターをIN動的に生成する、または
  • テーブル値パラメーターを使用する(DB スキーマを変更して型を追加する機能が必要です)。
于 2013-11-03T21:47:21.303 に答える