【发布时间】:2018-02-01 20:02:56
【问题描述】:
VB.NET - Visual Studio 2017 Professional - Winforms
我正在创建一个 SQL 控件类,我可以在其中简单地通过键入以下内容从另一个表单运行查询:
SQL.ExecQuery("SELECT * FROM ...")
到目前为止,我所拥有的效果非常好。但是,只有在执行选择查询时才会返回记录计数。当我插入、更新或删除时,我没有得到记录计数。
我知道我必须为那些使用ExecuteNonQuery,但是我如何将它写入我已经拥有的这个方法中:
Public Sub ExecQuery(Query As String)
''Reset Query Statistics
RecordCount = 0
Exception = ""
Try
SQLCon.Open()
''Create SQL Command
SQLCmd = New SqlCommand(Query, SQLCon)
''Load parameters into SQL Command
Params.ForEach(Sub(x) SQLCmd.Parameters.Add(x))
''Clear paramater List
Params.Clear()
''Execute Command & fill dataset
SQLDS = New DataSet
SQLDA = New SqlDataAdapter(SQLCmd)
RecordCount = SQLDA.Fill(SQLDS)
SQLCon.Close()
Catch ex As Exception
''Capture error
Exception = "ExecQuery Error: " & vbNewLine & ex.Message
MessageBox.Show(Exception, "SQL QUERY FAILED!", MessageBoxButtons.OK, MessageBoxIcon.Error)
MessageBox.Show(Query)
Finally
''Close Connection
If SQLCon.State = ConnectionState.Open Then SQLCon.Close()
End Try
End Sub
谁能给我一个例子,说明如何将ExecuteNonQuery 合并到这个子中,以便我可以获得插入、删除或修改的记录数?
【问题讨论】:
-
如果你问我,有两种不同的方法会更有意义。
ExecQuery应该返回一个DataTable,然后是一个ExecNonQuery方法,该方法将在内部调用ExecuteNonQuery,将返回一个记录计数。 -
@jmcilhinney - 也许我措辞错误。我完全打算有第二种方法使用 execnonquery,但我应该把 execnonquery 命令放在哪里?
标签: sql vb.net record-count