0

ここに私のコードがあります:

  Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load

    ltRooms.Text = CInt(Session("numOfRooms"))


    'Calculate total cost
    Dim intPrice As Integer
    Dim intTotal As Integer

    intPrice = AccessDataSource1.SelectCommand = "SELECT [Price] FROM [Rooms] WHERE ([RoomType] = 'RoomType')"


    intTotal = intPrice * intRooms
    ltPrice.Text = intTotal.ToString

    End Sub

そして私のデータソース

           <asp:AccessDataSource ID="AccessDataSource1" runat="server" 
        DataFile="Hostel.accdb" 
        SelectCommand="SELECT * FROM [Bookings]"></asp:AccessDataSource>

選択クエリの値を保存し、それを使用して合計価格を算出し、リテラルに保存しようとしています。これまでのところ、私は 0 しか取得していません。コンパイル エラーはありません。

これが機能しない理由を知っている人はいますか?

4

1 に答える 1

1

明確にするために、さまざまなコメントを回答に統合し、ページが拡張された議論について不平を言うのを止めています。これはすべて私の頭の中から外れているため、コードにエラーがある可能性があります。ただし、問題を特定するには十分なはずです。

まず、今日もう一度見てみると、コードはデータ ソースのSelectCommandプロパティを設定しているだけで、実際にデータベースにクエリを実行していないと思います。DataSource.Selectメソッドを使用する必要があると思います。

コードは次のようになります。

AccessDataSource1.SelectCommand = "SELECT [Price] FROM [Rooms] WHERE ([RoomType] = '" & RoomType & "')"

Dim intPrices As List(Of Integer) = AccessDataSource1.Select(DataSourceSelectArguments.Empty)

' Now do stuff with your price data.

上記が役に立たない場合はintPrice、Select 呼び出しによって返される値を確認します。RoomType が正しく設定されていることも確認する必要があります。

データベースから間違ったデータが返された場合は、SQL クエリを修正して正しいデータを取得できるはずです。これについてさらに支援が必要な場合は、SQL クエリとテーブル構造を投稿してください。

正しいデータが戻ってくる場合は、intRoomsが定義されている場所を確認してください。ゼロの場合、 の値に関係なく、合計はゼロとして計算されますintPrice

于 2013-05-29T09:39:02.177 に答える