用于执行 Insert/Update 查询的 ExecuteReader

ExecuteReader for executing Insert/Update query

好的,所以我刚刚得到了这个旧的 vb.net(2008) 程序来进行一些更改,我发现了一些奇怪的东西。 Insert/Update 查询正在使用 ExecuteReader 执行,它是这样的

Dim sqlcommand as new SqlCommand("Insert query", connection)
Dim sqldatareader as SqlDataReader = sqlcommand.ExecuteReader()

并且出于某种原因它有效,inserts/updates 数据正确。这有什么缺点吗?我应该费心浏览程序并将所有内容更改为 ExecuteNonQuery 吗?

Execute Reader 通常在您希望 SQL 命令 return 某些输出时使用。比如Select一行。但是,如果您没有任何结果,而只是一个普通的 Insert 或 Update,那么 ExecuteNonQuery 就足够了

仔细看INSERT命令,如果它有一个OUTPUT子句那么它实际上可以return数据。