ExecNonQuery SQL

ExecNonQuery SQL

VB.NET - Visual Studio 2017 专业版 - Winforms

我正在创建一个 SQL 控件 class,在其中我可以简单地 运行 从另一个表单输入查询:

SQL.ExecQuery("SELECT * FROM ...")

到目前为止,我所拥有的一切都运行良好。但是,当我执行 select 查询时,我只会得到一条记录计数。当我插入、更新或删除时,我没有得到记录计数。

我知道我必须为这些使用 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 合并到此子中,以便我可以获得插入、删除或修改的记录数?

这总是发生在我身上 - 我试图弄清楚一些事情,但我做不到,我 post 提出了这个问题,并在几分钟内找到了答案! (感谢您在正确方向上的推动!)

从上面的方法,我改成这个:

''Execute Command & fill dataset
        SQLDS = New DataSet
        SQLDA = New SqlDataAdapter(SQLCmd)
        RecordCount = SQLDA.Fill(SQLDS)

对此:

 ''Execute Command
        RecordCount = SQLCmd.ExecuteNonQuery()

现在一切正常,如我所料。我没有意识到 execnonquery 根本无法以我使用它的方式进行任何类型的 dataset/datatable 操作。