簡體   English   中英

如何將 Access 數據庫中的單個單元格的值添加到字符串變量中

[英]How can I add the value of a single Cell from Access database to a string variable

正如標題所說,我有一個 MS Access 數據庫,我需要從中找到由字符串值確定的特定數據集。 必須這樣做的原因是我可以在此數據集中找到單個單元格的值,該單元格必須用作查找某個文件的路徑。 到目前為止,我的方法如下:

 Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\ExaptLokal.accdb")
Dim cmd As New OleDb.OleDbCommand
Dim dt As New DataTable
Dim da As New OleDb.OleDbDataAdapter
Dim sql As String
 sql = "SELECT NC_KEY FROM EXAPT_NC_KOPF_DATEN WHERE NC_PROGRAMM_NAME =" & ProgrammNr.Text.ToString
        MsgBox(sql)
        conn.Open()
        cmd.Connection = conn
        cmd.CommandText = sql
        da.SelectCommand = cmd
        da.Fill(dt)
        fullpath = dt.ToString

最后,我想將 SQL 查詢的結果作為我的“完整路徑”變量的值,但到目前為止, da.Fill(dt)行讓我很難說與數據類型存在沖突。

在這種情況下是否甚至需要數據表,或者我是否可以跳過該步驟並直接在完整路徑變量中獲取查詢結果?

提前感謝大家

編輯:感謝您的幫助(雖然不是最友好的,但我要判斷誰)我終於讓它與Execute Scalar方法一起使用。 我只希望這個網站的新手能受到更好的歡迎,哈哈,祝你有美好的一天

我將連接字符串移動到 class 級別變量,以便您可以在其他方法中使用它。

我將您的數據訪問代碼與將值從文本框中傳遞到返回路徑的 function 的用戶界面代碼分開。

我將您的 select 語句更改為使用參數。 始終使用參數來避免 sql 注入並避免錯誤。

使用Using...End Using塊來確保您的數據庫對象已關閉和處置。 這個Using塊涵蓋了命令和連接。

您可以將.CommandText.Connection直接傳遞給命令的構造函數。

將參數添加到參數集合時,您需要提供參數名稱、來自數據庫的數據類型以及字段的大小。 我不得不猜測類型和大小,因此請檢查您的數據庫中的實際值。

由於您期望一個值,您可以使用.ExecuteScalar

Private ConStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\ExaptLokal.accdb"

Private Function GetPath(ProgrammNr As String) As String
    Dim fullpath As String
    Dim sql = "SELECT NC_KEY FROM EXAPT_NC_KOPF_DATEN WHERE NC_PROGRAMM_NAME = @ProgrmmNr"
    Using conn As New OleDb.OleDbConnection(ConStr),
            cmd As New OleDb.OleDbCommand(sql, conn)
        cmd.Parameters.Add("@ProgrmmmNr", OleDbType.VarChar, 100).Value = ProgrammNr
        conn.Open()
        fullpath = cmd.ExecuteScalar.ToString
    End Using
    Return fullpath
End Function

用法...

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim fullpath = GetPath(ProgrammNr.Text)
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM