none
VB.NET使用textbox輸入Access之疑問 RRS feed

  • 問題

  • 各位先進們好,我在程式中遇到一些問題,請各位幫忙一下,謝謝!

    我在程式中會使用到DLL檔,將"MSR3100_Reader"建立為Class,程式如下

    Imports System
    Imports System.Runtime.InteropServices

    Public Class MSR3100_Reader
        <DllImport("PrjDll693.dll", CharSet:=CharSet.Auto)> _
        Public Shared Function Connect(ByVal type As Integer, ByVal port As Integer, ByVal baudrate As Integer) As Integer
        End Function

    End Class

    之後在表單中使用"MSR3100_Reader"的Class,

    Public Class Form1
        Dim HandleID As Integer
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButConnect.Click
            If ButConnect.Text = "Connect" Then
                HandleID = MSR3100_Reader.Connect(4, 0, 0)        <-----------錯誤產生在此行
                If HandleID >= 0 Then
                    ButConnect.Text = "Disconnect"
                    ButRead.Enabled = True
                    ButReadBlack.Enabled = True
                    ButWriteBlack.Enabled = True
                End If
            Else
                HandleID = MSR3100_Reader.disConnect(HandleID)
                ButConnect.Text = "Connect"
                ButRead.Enabled = False
                ButReadBlack.Enabled = False
                ButWriteBlack.Enabled = False
            End If
        End Sub

    End Class

    錯誤為-->無法載入 DLL 'PrjDll693.dll': 找不到指定的模組。 (發生例外狀況於 HRESULT: 0x8007007E)

    我已經有將DLL檔放置於Debug資料及底下,也有匯入專案中,但仍然有錯誤產生,請問該如何解決呢?

    在此先謝過各位高手的幫忙!!

    謝謝你們!!


    2013年9月24日 上午 02:51

解答

  • 第一問,用access插入日期,必須用“#”開頭結尾;建議防止SQL攻擊用參數化方式插入比較好

    cmd1.CommandText = "Insert Into 訂單(收件日期) Values(@MyTime)"
    
    '如果不行,建議用“-”格式化日期
    cmd1.Parameters.AddWithValue("@MyTime",TextBox1.Text)
    ………………
    

    第二問:

    重新引用一下類庫,然後編譯,看智能提示是否足夠可以找到?

    另外注意——PrjDll693.dll是否在同一個文件夾中?或者是COM啥元件是否正常註冊了?


    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    2013年9月24日 上午 03:11

所有回覆

  • 第一問,用access插入日期,必須用“#”開頭結尾;建議防止SQL攻擊用參數化方式插入比較好

    cmd1.CommandText = "Insert Into 訂單(收件日期) Values(@MyTime)"
    
    '如果不行,建議用“-”格式化日期
    cmd1.Parameters.AddWithValue("@MyTime",TextBox1.Text)
    ………………
    

    第二問:

    重新引用一下類庫,然後編譯,看智能提示是否足夠可以找到?

    另外注意——PrjDll693.dll是否在同一個文件夾中?或者是COM啥元件是否正常註冊了?


    If you think one reply solves your problem, please mark it as An Answer, if you think someone's reply helps you, please mark it as a Proposed Answer

    Help by clicking:
    Click here to donate your rice to the poor
    Click to Donate
    Click to feed Dogs & Cats


    Found any spamming-senders? Please report at: Spam Report

    2013年9月24日 上午 03:11
  • 謝謝你喔!!資料庫部分已經解決囉:)

    DLL的部分我再試試看:)

    真的很謝謝你,這對我很有幫助!

    2013年9月24日 上午 03:35
  • 看起來是 SerialPort 的硬體,那 port / baudrate 這兩個都不應該為 0 。

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2013年9月24日 下午 12:47