none
在封閉區塊中隱藏了變數 RRS feed

  • 問題

  •  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim dbpath1 As String = "OT time-off.accdb"
            Dim source1 As String
            Dim cmx As OleDbCommand
            source1 = "provider=microsoft.Ace.oledb.12.0;data source=" & dbpath1
            Dim con As OleDbConnection
            con = New OleDbConnection(source1)
            con.Open()
            Dim add As String
            add = " Insert into OT (日期.start_time,end_time,approved_by) values (?,?,?,?)"
            Using cmx As New OleDbCommand(add, con)
                cmx.CommandType = CommandType.Text
                cmx.Parameters.AddWithValue("日期", MaskedTextBox10.Text)
                cmx.Parameters.AddWithValue("start_time", MaskedTextBox11.Text)
                cmx.Parameters.AddWithValue("end_time", MaskedTextBox2.Text)
                cmx.Parameters.AddWithValue("approved_by", ComboBox9.Text)
            End Using
            con.Close()
        End Sub

    他一直說'cmx'在封閉區塊中隱藏了變數
    想問一下到底是什麼問題....

    下面的是同一個表單內的查詢程序..

    Private Sub Form5_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim dbpath As String = "OT time-off.accdb"
            Dim source As String
    
            Dim cmds As OleDbCommand
            Dim reader As OleDbDataReader
            source = "provider=microsoft.Ace.oledb.12.0;data source=" & dbpath
            Dim conn As OleDbConnection
            conn = New OleDbConnection(source)
            conn.Open()
            Dim info As String
            info = "SELECT * FROM staff WHERE [Officer_code]= '" & login.username & "'"
            cmds = New OleDbCommand(info, conn)
            reader = cmds.ExecuteReader()
            While reader.Read()
    
                Label1.Text = reader.Item("Balance")
            End While
            reader.Close()
            conn.Close()
        End Sub



    2014年7月24日 上午 06:14

解答

  • 使用 Using 宣告的變數,視同使用 Dim 宣告的變數。

    你把前面的 Dim cmx 拿掉,這個訊息應該就會消失了。


    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    • 已提議為解答 Alex_Lee 2014年7月24日 下午 11:33
    • 已標示為解答 kahung30 2014年7月28日 上午 01:27
    2014年7月24日 下午 11:32
    版主