在Visual Studio中选择Access数据库上的查询

时间:2013-05-28 06:36:11

标签: asp.net sql visual-studio-2010 ms-access select

继承我的代码:

  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>

我正在尝试存储select查询中的值,然后使用它来计算总价格,然后将其存储在文字中。到目前为止,我只得到0.没有编译错误。

有谁知道为什么这不起作用?

1 个答案:

答案 0 :(得分: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.

如果上面没有帮助,那么我会检查Select呼叫返回的intPrice的值。您还应该检查RoomType是否设置正确。

如果从数据库返回错误的数据,那么您应该能够修复SQL查询以检索正确的数据。如果您需要进一步的帮助,请发布SQL查询和表结构。

如果返回正确的数据,请检查intRooms的定义位置。如果它为零,则无论intPrice的值是什么,您的总计都将计算为零。