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 操作。
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 操作。