0

尊敬する会員の皆様、こんにちは。

現在、クエリ文字列値に基づいて Gridview を作成するために、asp.net で次の SELECT コマンドを使用しています。

 SelectCommand="SELECT ID, Date, Train, I_R, Dir_Ind, Detn, Rly, DiV, Loco, Shed, locoClass, loco_type FROM PunctualityMain WHERE Date >= @strdt AND Date <= @enddt AND ([Rly] = @rly OR @rly IS NULL) AND ([shed] = @shed OR @shed IS NULL) Order by Date ASC">

 <SelectParameters>
 <asp:QueryStringParameter Name="strdt" QueryStringField="strdt" Type="DateTime" />
 <asp:QueryStringParameter Name="enddt" QueryStringField="enddt" Type="DateTime" />
 <asp:QueryStringParameter Name="rly" QueryStringField="rly" Type="string" />
 <asp:QueryStringParameter Name="shed" QueryStringField="shed" Type="string" />
 </SelectParameters>

2 つの値が null の場合でも正常に動作しています。

  http://elocos.railnet.gov.in/Punctuality/Punctualitydetail.aspx?strdt=5/1/2013&enddt=5/14/2013&rly=&shed=

今、私は以下のような削除、挿入、更新コマンドを使用してGridviewに同じものを使用したいと考えています:

    DeleteCommand="DELETE FROM [PunctualityMain] WHERE [ID] = @ID" 
    InsertCommand="INSERT INTO [PunctualityMain] ([Date], [Train], [Dir_Ind], [Detn], [Rly], [DiV], [Loco], [Shed], [locoClass], [loco_type]) VALUES (@Date, @Train, @Dir_Ind, @Detn, @Rly, @DiV, @Loco, @Shed, @locoClass, @loco_type)" 
    SelectCommand="SELECT * FROM [PunctualityMain] WHERE (([Date] &gt;= @strdt) AND ([Date] &lt;= @enddt) AND ([Shed] = @shed OR @shed IS NULL) AND ([Rly] = @rly OR @rly IS NULL)) ORDER BY [Date]"
    UpdateCommand="UPDATE [PunctualityMain] SET [Date] = @Date, [Train] = @Train, [Dir_Ind] = @Dir_Ind, [Detn] = @Detn, [Rly] = @Rly, [DiV] = @DiV, [Loco] = @Loco, [Shed] = @Shed, [locoClass] = @locoClass, [loco_type] = @loco_type WHERE [ID] = @ID">
    <DeleteParameters>
        <asp:Parameter Name="ID" Type="Int32" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="Date" Type="DateTime" />
        <asp:Parameter Name="Train" Type="Int32" />
        <asp:Parameter Name="Dir_Ind" Type="String" />
        <asp:Parameter Name="Detn" Type="Int32" />
        <asp:Parameter Name="Rly" Type="String" />
        <asp:Parameter Name="DiV" Type="String" />
        <asp:Parameter Name="Loco" Type="String" />
        <asp:Parameter Name="Shed" Type="String" />
        <asp:Parameter Name="locoClass" Type="String" />
        <asp:Parameter Name="loco_type" Type="String" />
       </InsertParameters>
    <SelectParameters>
   <asp:QueryStringParameter Name="strdt" QueryStringField="strdt" Type="DateTime" />
   <asp:QueryStringParameter Name="enddt" QueryStringField="enddt" Type="DateTime" />
   <asp:QueryStringParameter Name="rly" QueryStringField="rly" Type="string" />
   <asp:QueryStringParameter Name="shed" QueryStringField="shed" Type="string" />
   </SelectParameters>
    <UpdateParameters>
        <asp:Parameter Name="Date" Type="DateTime" />
        <asp:Parameter Name="Train" Type="Int32" />
        <asp:Parameter Name="Dir_Ind" Type="String" />
        <asp:Parameter Name="Detn" Type="Int32" />
        <asp:Parameter Name="Rly" Type="String" />
        <asp:Parameter Name="DiV" Type="String" />
        <asp:Parameter Name="Loco" Type="String" />
        <asp:Parameter Name="Shed" Type="String" />
        <asp:Parameter Name="locoClass" Type="String" />
        <asp:Parameter Name="loco_type" Type="String" />
        <asp:Parameter Name="ID" Type="Int32" />
    </UpdateParameters>

上記の SELECT コマンドが rly と shed の NULL 値で機能しないのはなぜですか? ただし、4つのクエリ文字列値すべてで、このように機能しています

  http://elocos.railnet.gov.in/Punctuality/Punctualitydetail.aspx?strdt=5/1/2013&enddt=5/14/2013&rly=CR&shed=KYN

この文字列でも機能するように、問題の解決策を提案してください (NULL 文字列値)

  http://elocos.railnet.gov.in/Punctuality/Punctualitydetail.aspx?strdt=5/1/2013&enddt=5/14/2013&rly=&shed=
4

1 に答える 1