簡體   English   中英

重載解析失敗,因為沒有可訪問的“ ExecuteScalar”接受此數量的參數

[英]Overload resolution failed because no accessible 'ExecuteScalar' accepts this number of arguments

我是VB.NET的新手,我想知道如何解決此錯誤。

 Dim sql As String = "SELECT (USER) FROM USER_CONSTANT"
    Dim conn As New SqlConnection(strConn)
    Dim objDR As SqlDataReader
    Dim Cmd As New SqlCommand(sql, conn)
    conn.Open()
    objDR = Cmd.ExecuteScalar(CommandBehavior.CloseConnection)
    While objDR.Read()
        Label7.Text = objDR("USER")

ExecuteScalar方法不需要任何參數。 可以將CommandBehavior枚舉傳遞給ExecuteReader方法,因此我想您的代碼應編寫為

Dim sql As String = "SELECT (USER) FROM USER_CONSTANT"
Using conn = New SqlConnection(strConn)
Using Cmd = New SqlCommand(sql, conn)
    conn.Open()

    Using objDR = Cmd.ExecuteReader(CommandBehavior.CloseConnection)
       While objDR.Read()
          Label7.Text = objDR("USER")
       End While
    End Using
 End Using
 End Using

尚不清楚您是否希望從此代碼中收到多個記錄。 如果返回多個記錄,則請注意,在每個循環中,您都使用當前的USER更改Label7.Text的內容,並且循環以顯示的姓氏結束

ExecuteScalar不接受任何變量(請參閱文檔 )。 只需將行更改為objDR = Cmd.ExecuteScalar

正如錯誤所言, ExecuteScalar不會接受任何數量的參數重載。 或任何論點 代替:

objDR = Cmd.ExecuteScalar()

還是您打算使用ExecuteReader ,因為您打算遍歷結果並且標量不是結果集?

objDR = Cmd.ExecuteReader(CommandBehavior.CloseConnection)

暫無
暫無

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

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