Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在VB.Net工作文件夹中使用多个条件搜索Access数据库_Sql_Vb.net_Visual Studio_Ms Access - Fatal编程技术网

Sql 在VB.Net工作文件夹中使用多个条件搜索Access数据库

Sql 在VB.Net工作文件夹中使用多个条件搜索Access数据库,sql,vb.net,visual-studio,ms-access,Sql,Vb.net,Visual Studio,Ms Access,项目背景 我正在从事一个VB.Net项目,该项目将地图创建者与数据库相结合。它是根据YouTube()上的这些教程构建的 其想法是能够单击网格上的一个正方形,并在屏幕上显示相应的数据库行 当用户单击“Go”(参见底部的图像)时,会记录X和Y轴网坐标(参见右上方的图像)。我通过以下单击事件完成此操作: Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click 'Associates click

项目背景

我正在从事一个VB.Net项目,该项目将地图创建者与数据库相结合。它是根据YouTube()上的这些教程构建的

其想法是能够单击网格上的一个正方形,并在屏幕上显示相应的数据库行

当用户单击“Go”(参见底部的图像)时,会记录X和Y轴网坐标(参见右上方的图像)。我通过以下单击事件完成此操作:

 Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click

    'Associates click with colour for paintbrush

    If MouseX = 1 And MouseY = 22 Then
        Paintbrush = 1 'BUILDING
    ElseIf MouseX = 5 And MouseY = 22 Then
        Paintbrush = 2 'WATER
    ElseIf MouseX = 8 And MouseY = 22 Then
        Paintbrush = 3 'ROAD
    ElseIf MouseX = 11 And MouseY = 22 Then
        Paintbrush = 4 'FIELD
    ElseIf MouseX = 14 And MouseY = 22 Then
        Paintbrush = 5 'WOODLAND
    ElseIf MouseX = 18 And MouseY = 22 Then
        Paintbrush = 6
    End If

    If MouseY <= 20 Then

        Select Case Paintbrush
            Case 0
            Case 1 ' Building 
                Map(mMapX, mMapY, 0) = 1
            Case 2 ' Water
                Map(mMapX, mMapY, 0) = 2
            Case 3 ' Road 
                Map(mMapX, mMapY, 0) = 3
            Case 4 ' Field
                Map(mMapX, mMapY, 0) = 4
            Case 5 ' Woodland 
                Map(mMapX, mMapY, 0) = 5
            Case 6 'Go
                CurrentLocationX = MouseX ' <<< This is the important part here
                CurrentLocationY = MouseY
                XLocation.Text = CurrentLocationX
                YLocation.Text = CurrentLocationY



        End Select
    End If
End Sub


    
最终结果是,单击命令将进行此查询并更新地图栅格位置的“说明”。我想我这里有所有必要的组件,我只是在努力将两个系统(网格和数据库)连接起来

问题

我在网上查了一下,虽然我发现答案都是针对具体情况的,我可以打捞任何代码。我需要在ClickEvent中添加什么才能查询数据库并刷新显示的记录


可能的话,构建一个类对象,其中包含定义单元格的矩形和对相应数据行的引用,以及选择单元格时所需的任何其他信息。您可以使用
Rectangle.Contains(Point)
来确定单击了哪个单元格。类似这样:我很高兴听到您的问题已经解决,您可以单击'✔' 将你的答复标记为答复。
                    XLocation.Text = CurrentLocationX
                    YLocation.Text = CurrentLocationY
Imports System.Data.OleDb    

Public Class Form1

    'Search Variables
    Dim con As New OleDbConnection

[...]

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        
        'Open Search Connection
        con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data 
        Source=C:\Users\matth\OneDrive\Desktop\VisualBasic Stuff\GameFinal\Database.accdb"
        con.Open()

    [...]
    
    Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click
    
 

    'Go
                        CurrentLocationX = MouseX
                        CurrentLocationY = MouseY
                        XLocation.Text = CurrentLocationX
                        YLocation.Text = CurrentLocationY
                        SearchSQL()
                        Current.Focus()
                        SendKeys.Send("{ENTER}")
                End Select
            End If
        End Sub

     [...]

 

    Private Sub SearchSQL()
            Dim ds As New DataSet
            Dim dt As New DataTable
            ds.Tables.Add(dt)
            Dim da As New OleDbDataAdapter
            da = New OleDbDataAdapter("SELECT ID FROM Twix WHERE x =" & CurrentLocationX & " and y  =" & CurrentLocationY, con)
    
            da.Fill(dt)
            Current.Text = dt.Rows(0).Item(0)
            con.Close()
    
    
        End Sub