【发布时间】:2020-09-02 00:19:41
【问题描述】:
Imports System.Data.SqlClient
Public Class SQLCONTROL
Private DBcon As New SqlConnection("Data Source=DESKTOP-DQ7NOIF\SQLEXPRESS;Integrated Security=True")
Private DBcom As New SqlCommand
Public DBDA As SqlDataAdapter
Public DBDT As DataTable
Public Params As New List(Of SqlParameter)
Public RecordCount As Integer
Public Exception As String
Public Sub New()
End Sub
Public Sub New(ConnctionString As String)
DBcon = New SqlConnection(ConnctionString)
End Sub
Public Sub ExecQuery(Query As String)
RecordCount = 0
Exception = ""
Try
DBcon.Open()
DBcom = New SqlCommand(Query, DBcon)
Params.ForEach(Sub(p) DBcom.Parameters.Add(p))
DBDT = New DataTable
DBDA = New SqlDataAdapter(DBcom)
RecordCount = DBDA.Fill(DBDT)
Catch ex As Exception
Exception = "ExecQuery Error" & vbNewLine & ex.Message
Finally
If DBcon.State = ConnectionState.Open Then DBcon.Close()
End Try
End Sub
Public Sub AddParam(Name As String, Value As Object)
Dim NewParam As New SqlParameter(Name, Value)
Params.Add(NewParam)
End Sub
Public Function HasException(Optional Report As Boolean = False) As Boolean
If String.IsNullOrEmpty(Exception) Then Return False
If Report = True Then MsgBox(Exception, MsgBoxStyle.Critical, "Exception:")
Return True
End Function
End Class
异常消息是“System.Data.dll 中发生'System.Data.SqlClient.SqlException' 类型的第一次机会异常
附加信息:Nom d'objet 'Utilisateurs' 无效。"
谢谢
【问题讨论】:
-
尽管您发布了未经翻译的法语错误消息,但您似乎被告知数据库对象名称
Utilisateurs无效。您的 SQL 代码似乎存在问题,但这是您没有向我们展示的一件事。我建议您检查 SQL 代码中的所有表名和列名,以确保它们都是正确的。 -
为了将来参考,标题应该是您问题的简明摘要。不要包括对您专业水平的问候或描述。此外,这里的例外似乎是在执行查询时,因此
DataGridView没有相关性。最后,该网站出于某种原因提供了您帖子的预览。确保您使用它,如果您的代码格式不正确,请不要提交。如果您不知道如何正确格式化代码,请在发布之前努力找出答案。 -
这是一个将用户界面代码与数据访问代码分开的好主意,但您会强制您的 ui 代码了解 Sql Server。我怀疑您正在检查用户登录,因为您没有返回任何数据,只是记录计数。您需要特定的方法来处理不同类型的查询。
标签: sql vb.net tsql exception datagridview