我试图弄清楚如何查询访问数据库以从数据库获取信息并将其放入类数组中。我知道如何使用基本的LINQ进行一些查询,但不知道如何按照我想要的方式进行查询。我有一个我正在使用的角色类,我将所有角色特征存储在数据库中。我想查询数据库并将该信息添加到类数组中。任何帮助将不胜感激。
这里是类私有变量,它们是数据库中的相同特征:
Public Class Character
Private _strName As String
Private _intLevel As Integer
Private _intHealth As Integer
Private _intDamage As Integer
Private _intScore As Integer
答案 0 :(得分:0)
首先。我不得不说这不是一个好问题。 实际上你所说的是......:请为我建立这个访问数据库和视觉工作室表格的数据连接。
但是因为我心情愉快,这就是我为你所做的。
我在access中创建了一个小数据库文件。我把它保存到一个名为database的文件夹中。它位于项目目录中。
我做了2节课。 1个CharactersForm和2个网关
网关是与您的Acces数据库建立连接。 CharactersForm是您在调试时看到的形式
这是CharactersForm类。 确保拖放列表框和按钮 调用列表框ListBoxCharacters。 拨打按钮InladenButton。或者随意调用它,但要确保它符合给定的代码。
Option Explicit On
Option Strict On
Option Infer On
Public Class CharactersForm
Dim _CharactersGateway As New Gateway
Private Sub InladenButton_Click(sender As Object, e As EventArgs) Handles InladenButton.Click
_CharactersGateway.LoadDataTableCharacters()
ListBoxCharacters.DataSource = _CharactersGateway.CharactersDataTable
ListBoxCharacters.DisplayMember = "Name"
End Sub
End Class
网关类(连接到您的访问文件) 如果visual studio无法访问数据库,则表示连接字符串不正确。确保连接字符串与accesfile.accdb所在的位置完全相同
Option Explicit On
Option Strict On
Option Infer On
Imports System.IO
Imports System.Data.OleDb
Public Class Gateway
Public Shared AppPath As String = Application.StartupPath()
'\Debug
Public Shared DirectoryUp1 As String = Path.GetDirectoryName(AppPath)
'\bin
Public Shared DirectoryUp2 As String = Path.GetDirectoryName(DirectoryUp1)
'\CharactersStackOverFlow
Public Shared DirectoryUp3 As String = Path.GetDirectoryName(DirectoryUp2)
'\CharactersStackOverFlow
Public Shared AccesDatabaseFilePath As String = DirectoryUp3 & "\DataBase\Characters.accdb"
Dim ConnectionString As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & AccesDatabaseFilePath)
Public Property DataSetCharacters As New DataSet
Public ReadOnly Property CharactersDataTable As DataTable
Get
CharactersDataTable = DataSetCharacters.Tables("Characters")
End Get
End Property
Public CharactersDataAdapter As OleDbDataAdapter
Public Sub LoadDataTableCharacters()
CharactersDataAdapter = New OleDbDataAdapter("SELECT * FROM Characters", ConnectionString)
CharactersDataAdapter.Fill(DataSetCharacters, "Characters")
Dim kamersCommandBuilder As New OleDbCommandBuilder(CharactersDataAdapter)
End Sub
End Class
这是Yuriy Galanter所说的。你需要OleDbConnection。 如果您使用的是Office 2010,则会收到警告::
'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine
您需要下载2007 Office System驱动程序。它也适用于2010年,不要问我为什么。
键入' 2007 Office System驱动程序'在谷歌。从microsoft您可以下载并安装它。
全部完成!
如果您运行程序并按下加载按钮。您的角色名称将出现在列表框中。
如果要将数据库的字段值放在变量中。然后它只是制作一个for循环并将它们放在变暗的变量中。这是我确定你可以自己做的事情。现在已经整理了与数据库的连接和程序中的加载!
祝你好运乔纳森